drag in all sorts of irrelevant matters

Zhang Ge Blog officially launched a new personalized domain name: zhang.ge

Docker

Nexus 3 Best Practice Series: Building a Docker Private Warehouse

Docker

Zero threshold! Rapid deployment of ES cluster based on Docker

Website construction

Share Zhang Ge's WordPress optimization scheme to alleviate the problem of low configuration of domestic ECS

Docker

A practical course for beginners to Docker

Docker

Deploy ceph distributed file system based on Docker (Luminous version)

drag in all sorts of irrelevant matters

Talking about the danger of personal blog website or Loser vps server exposing real IP

WEB application

APISIX plug-in development refined speed limiting plug-in

Website construction

How to correctly configure the CDN cache to avoid the embarrassment of slower usage

WEB application

Hong Gateway HMAC Authentication Plug in developed by APISIX Plug in (client SDK attached)

WEB application

APISIX O&M optimization solves the problem of long tail requests (time-consuming jitter)

August 17, 2022

Records of problems encountered during gRPC development

two thousand three hundred and sixty-four one
Recently, I was rebuilding an HTTP Restful API service I was responsible for to integrate support for the gRPC protocol (called tRPC in Goose Factory, which is a local derivative of gRPC). Since I learned this protocol from 0, I also stepped into many holes. Here is an article to record it. I hope it can help friends who also learned gRPC from 0. The old Rest interface used a lot of list parameters to assign values to list parameters. After looking at the pb protocol, we define this parameter as follows: message Foo {rep
August 3, 2022

SQLAlchemy failed to connect to MySQL because the password contains the @ symbol

two thousand four hundred and fourteen zero
Recently, the new young intern is reconstructing an old system that I developed when I joined the company. This system was previously developed using the Python twisted framework. This reconstruction hopes to change to FastAPI, which is the Flyer development framework I shared in my last article. The young man was very helpful. He spent several days learning FastAPI and Flyer by himself and started to develop them. As a result, when using the Flyer framework, the following error was reported when connecting to MySQL: sqlalchemy.exc.OperationalError: (
June 17, 2022

Flyer: a lightweight API development framework based on FastAPI

two thousand seven hundred and twenty-two zero
Overview We often hear that "the operation and maintenance that will not be developed is not a good luck maintenance". Indeed, in the operation and maintenance work, skilled development experience can make the operation and maintenance work like a duck in water and get twice the result with half the effort! In addition to mastering shell script programming, advanced O&M needs to master a high-level language, such as Python, Golang, PHP, Lua, etc. In addition to solving some more complex O&M scenarios, high-level language can also help us better understand the business and do a good job in business O&M, after all, only knowing ourselves and the other can win a hundred battles. I often see many O&M students write interfaces
March 18, 2022

APISIX Advanced Routing 301/302 Jump Configuration

two thousand seven hundred and seventy-three zero
We have an internal website that supports access to two domains at the same time. Recently, due to the need for upgrading, we hope to unify to one domain name, that is, the old domain name will make a 301 jump to the new domain name. You can directly configure an if logic in Nginx, judge the old host and jump to the new domain name. How should this case be configured in APISIX? After looking at the APISIX document, we found that there are two jump plug-ins: redirect and response rewrite. The former can only jump to the uri but not to the protocol host. The latter can modify the return header
March 1 · 2022

Resolve the timeout problem of paramiko using the invoke_shell interactive command

three thousand nine hundred and ninety-six zero
Recently, a business on hand was developed based on Apache Karaf. It runs in K8S and runs a bunch of bundles. Occasionally, one or two bundle containers are not perceived, but the business may have local exceptions. If you want to promote business optimization, the cycle will be very long. Therefore, you should first set up a regular dial test to monitor whether the bundles are running normally. After looking at the bundles in Karaf, you need ssh to execute the bundle list command, so based on previous experience, you can use Python p
February 25 · 2022

Share a typical case of an APISIX gateway returning 502

one thousand six hundred and twenty-six zero
In order to improve the performance of APISIX, the keepalived feature is turned on by default. The default session retention time is 60s. When we deploy the gateway, we also retain this optimization feature. It happens that my upstream service is based on the Gunicorn+FastAPI development framework, and keepalived is also turned on. The default setting for session retention is 5s. There is a problem: within 60 seconds after the gateway and the upstream service establish a connection, the new request will continue to reuse the connection, but the upstream actively closes the connection after 5 seconds, because when the gateway forwards the new request to the upstream, it finds that the connection has been closed, so the above error occurs
December 23, 2021

Solve the problem that Baidu Search appears a security center reminder

one thousand five hundred and five zero
Since the blog almost broke, it has paid little attention to SEO. When Baidu searched the domain name "zhang. ge" of foreign lines by chance yesterday, the following prompt was found: Nani? And this kind of thing? However, the search for "zhangge.net" failed, which seems to be a false alarm. Click to open it, and you will be prompted as follows: When you see a "Apply for Unsealing" button, click it, fill in the form and submit it: As a result, it didn't take long, and after about an hour or so, you received the approval from Baidu
December 12, 2021

APISIX O&M optimization solves the problem of long tail requests (time-consuming jitter)

two thousand seven hundred and twenty-four zero
Since APISIX gateway was popularized and used, there have been many production business accesses in our department. One day, he was pulled into a problem group and was told that there was a problem with the performance of APISIX gateway, and the overall performance was not as good as the previous ZUUL gateway. what? APISIX's performance can't be worse than ZUUL's, can it? Don't talk nonsense. I got a serial request and compared it with the APISIX gateway and the ZUUL gateway in the production environment. The result was surprising! Under normal circumstances, APISIX takes more time than the ZUUL gateway, but the AP
November 14, 2021

APISIX O&M Optimization Configuration File Automatic Generation Scheme

three thousand three hundred and sixty-four zero
Configure APISIX in Configmap mode. At the beginning, we used Configmap to deploy APISIX on Tencent Cloud TKE. When the network area becomes more and more open, each TKE cluster needs to define a set of Configmap corresponding to config.yaml, which is very cumbersome to manage. Therefore, here we use Python's Jinja2 plug-in to automatically render APISIX configuration files, which is very convenient on the whole
May 23, 2014

Novice Tutorial: Ngnix Installation Details

four thousand five hundred and ninety-one nine
Today, I didn't know what to write, so I found a very detailed Nginx installation tutorial, "just to make up for it". In addition, I attached the core video tutorial of Brother Ma on nginx. Nginx (pronounced the same as engine x) is a lightweight web server/reverse proxy server and email (IMAP/POP3) proxy server, which is distributed under a BSD like protocol. Developed by Igor Sysoev, a Russian programmer, for Russia's large-scale portal website and search engine Rambler (Russian: Рам...
November 29, 2018

Basic skills of Linux operation and maintenance: access layer and network foundation

one thousand six hundred and fifty-nine seventeen
There are three articles in this series, namely, Script Programming and Linux Commands, Access Layer and Network Foundation, and MySQL and SQL Optimization, which were originally created by Luaruan (Ruan Yongshun), a senior engineer of Tencent, and collated and shared by Zhang Ge's blog. Please leave a message on the blog if there is any error. I hope it will be helpful to students who need to learn and interview Linux operation and maintenance. What are the default sizes of MSS and MTU? The default MTU (maximum transmission unit) of the standard Ethernet interface is 1500 bytes, and the maximum frame is 151
January 19, 2014

It is found that the robots. txt generated by the plug-in cannot be recognized by Google and 360

eight hundred and eighty-three four
The last time I reset the pseudo static of Masker through the "Correct Methods for Setting the Pseudostatic of the Win Host Website", I installed a plug-in to generate robots. txt because the Rewrite robots did not work. Then I found that the access to the robots address also had the specified content. A few days later, I found that 360 was all K, leaving only the home page, and Google no longer included new pages. I always thought that my robots content was wrong, so I searched around and changed the robots content countless times. Google always displays [syntax error] in the [Blocked URL] option
Scripting Read more
December 30, 2013

Get the actual name of the network connection under Windows to enhance the compatibility of IP class setting scripts

three thousand three hundred and forty one
In the previous work, due to the differences in domain management and TCP settings, many scripts about IP switching have been written. As a script for mass computer maintenance, the most important thing is compatibility. You can't just pass the tests on those computers, and then publish them to colleagues for use. All kinds of things happen! One of the more difficult problems is to obtain the actual name of the network connection. Most people use the IP setting script to write [Local Connection] in the code, but not all computers are actually called Local Connection; For example, some users' computers may have upgraded the network card driver, or changed the network
June 19, 2014

[Update irregularly] Simple shell script exercise examples

one thousand two hundred and fifty-six twenty-four
This article will sort out some simple, practical, interesting and easy to learn shell exercise scripts, hoping to help some beginners who want to learn shell. Zhang Ge will also update this article irregularly in his spare time to improve and annotate existing examples to enhance readability and understandability. Of course, I will occasionally add more simple, interesting and practical shell exercise scripts to help some beginners in need. 1、 Write a script so that we can automatically generate "#!" when writing a script/ Bin/bash "and comment information. The original code is: #/ bin/bas...
July 31, 2014

Shell script tool for VPS server to backup website files and databases to Qiniu Cloud storage

four thousand four hundred and seventy-six thirty-three
I have always wanted to write an article on local and remote backup of the website. In fact, the relevant draft was written on 6.12, but it has not been released because there is no test environment. After a long time, I forgot. I will find a time to test and release it later. The tool shared today is also related to backup, and it is remote backup. This tool is my boring work, although WordPress already has backup plug-ins such as wp2pcs. I believe the webmaster of VPS will like this tool, because it will not occupy resources permanently. 1、 Tool Profile Tool Name: Bac
February 19, 2014

Simple Troubleshooting of Shell Script and Debugger bashdb

eight thousand nine hundred and eighty-four thirty-two
If the research of Jboss is a little bit stuck, it's better to take some basic courses. Like many scripting languages, it is common for shell scripts to make errors during execution. The simplest reason is that syntax errors occur in the script writing process or commands are accidentally input. Finding errors in scripts is an important ability. For example, I often accidentally write the echo command as ehco, and the following situation will occur during execution:[ root@localhost ~]# sh testtest: line 2: ehco:...
June 25, 2016

Skillfully Using Echo Command to Solve the Problem of Samba Batch Adding Users

five thousand eight hundred and sixteen nineteen
I'm really busy recently, and I don't have time to study and toss about, so I have nothing to share with my blog. Sure enough, it's not easy for a personal blog to insist on originality. Zhang Ge's blog has been online for more than two years, from more than one day to more than one day, to more than one day and more than one week, until now there may be a more rhythmic two weeks... Well, stop talking nonsense. After looking through the impression notes at work, I found that there are still some stocks that can be shared. A long time ago, the group applied for a new batch of development test machines, which needed to deploy the environment. In addition to some common software to install, there is also a Samba that I rarely used before
December 20, 2013

Batch processing judges the last partition of the first hard disk and enters

eight hundred and ninety-one zero
Refer to the one written by the batch processing home to Baidu friends. → Baidu Q&A original address @ echo off echo The initial working directory of batch processing is% cd%, start switching for /f "tokens=3 delims==" %%i in (\'Wmic Path Win32_LogicalDiskToPartition^|find /i "Disk #0"\') do call :check %%i echo. ...
June 16, 2017

Problems encountered by Python remote control module paramiko and records of solutions

four thousand nine hundred and thirty-two seventeen
Recently, we have been developing an automatic operation and maintenance publishing platform. The underlying command line and file channel are mainly based on the paramiko module. We encounter various problems in the use process. This article is mainly used to collect problems and solve records for future use. 1、 Error reading SSH protocol banner, the key word of wrong connection, has been searched by Baidu and Google for a large number of questions, and a few of them have given solutions, but they can't be solved in the end. After constant attempts and interpretation of paramiko source code, I finally solved the problem, here
September 28, 2015

CCKiller: Linux lightweight CC attack defense tool, second level check, automatic blackout and release

eighteen thousand nine hundred and seventy-one two hundred and fifty-nine
Zhang Ge's blog shared a defense script for CC attack long ago, which was not very well written, but was accidentally reprinted by 51CTO. Since then, blogs have been used by people to practice their hands. Of course, there are still many friends who use it in the production environment and will leave messages to ask relevant questions. According to the needs of these problems, I spent some time rewriting a relatively satisfactory lightweight CC attack defense script. I gave it a more vivid name: CCKiller, translated as CC Terminator. 1、 Before sharing the function declaration, I must declare
June 26, 2014

Linux operating system DNS resolution (nameserver) monitoring script

seven thousand seven hundred and eighteen twenty
1、 Cause yesterday, the brothers in the development team found that many Alipay business error messages appeared in the resin log. The user bought the product with Alipay, but the company system did not return the payment success status after the money arrived! Is that enough? The user has paid successfully, but the result shows that the account has not been received!!! It must be solved quickly. If the user complaint is small, the loss of users will be large! After careful analysis of the log, it was found that there was a delay in resolving the Alipay interface domain name (mapi. alipay. com), which led to the failure to obtain the return information of successful payment! Check the OpenSUSE name
December 23, 2013

Self extracting installation package is made in shell to realize simple encryption of script

five thousand two hundred and twenty one
Statement: Most of the following content is collected on the Internet, which is compiled by individuals into a concise tutorial that is easier to understand! 1、 The principle is that you can use several basic commands to create a self extracting program under Linux. The principle is that the cat command can be used to connect two files (the same effect can be achieved by appending with>>). The first file is a shell script, which is responsible for decompression and installation; The latter file is a compressed package. Connect these two files into a new executable file through cat. The first is the decompression program, and the second is the compressed package. When you execute
operating system Read more
November 29, 2018

Basic skills of Linux operation and maintenance: access layer and network foundation

one thousand six hundred and fifty-nine seventeen
There are three articles in this series, namely, Script Programming and Linux Commands, Access Layer and Network Foundation, and MySQL and SQL Optimization, which were originally created by Luaruan (Ruan Yongshun), a senior engineer of Tencent, and collated and shared by Zhang Ge's blog. Please leave a message on the blog if there is any error. I hope it will be helpful to students who need to learn and interview Linux operation and maintenance. What are the default sizes of MSS and MTU? The default MTU (maximum transmission unit) of the standard Ethernet interface is 1500 bytes, and the maximum frame is 151
December 30, 2013

Advanced Experience of Linux from Zero to Expert

eight hundred and twenty-nine two
Since graduation in 2006, I have been engaged in IT industry for nearly 8 years. Along the way, many thoughts and technical experiences have been written in 51CTO's blog. Many words now seem to be immature, but this is my real growth path. In the past eight years, starting from the most basic network administrator, starting from the lowest level of IT work, such as being a crystal head, I have worked slowly in state-owned enterprises, foreign enterprises, network administrators, system engineers, project managers, Linux lecturers, experienced many major projects (including government departments, important national livelihood related projects), sweated through the night
January 5, 2015

Detailed explanation of vmstat command, a Linux system memory monitoring and performance diagnostic tool

four thousand three hundred and forty-one four
Recently, I have had a lot of troubles, and my blog seems to have entered a period of constipation. Although it is far from giving up, there is always a feeling of depression that toothpaste cannot be squeezed out. I miss the momentum and passion of the last few months. I can save several high-quality drafts every day. It seems that Zhang Ge's blog has entered the bottleneck stage for the first time! I can't help it. I'll turn to some basic courses to make a face of it. Of course, it's also for reviewing the past and learning the new. The vmstat command is the most common Linux/Unix monitoring tool, which can display the status values of the server at a given time interval, including the server's CPU utilization, memory usage
March 6, 2014

Linux: sed command details

three thousand seven hundred and seventy-five thirty-four
1. Introduction sed is a non interactive editor. It does not modify the file unless you use shell redirection to save the results. By default, all output lines are printed to the screen. The sed editor processes the file (or input) line by line and sends the results to the screen. The specific process is as follows: first, sed saves the line currently being processed in a temporary buffer (also called the mode space), then processes the line in the temporary buffer, and sends the line to the screen after completion. Sed deletes a line from the temporary buffer after processing it, and then reads the next line for processing and
August 13, 2014

Detailed explanation of zypper parameter of SUSE Linux system online installation software command

eleven thousand and thirty-nine four
For Linux system software installation, whether from the perspective of performance or stability, it is justifiable to give priority to compiling and installing software. However, when compiling and installing, you will occasionally be prompted that some dependent components are missing, such as curl level and libevent. At this time, it will take time to find the corresponding compilation package or rpm package! Moreover, when you find and start to install, there may be new missing dependent components!! Depressed to death... At this time, online installation functions can be launched, such as yum and ubunt under Centos
May 15, 2014

10 super interesting Linux commands

four thousand three hundred and six twenty-three
This article shows 10 interesting Linux dynamic commands, which have nothing to do with practical functions and are only for entertainment! After reading this article, you will have a new understanding of Linux. Who said that IT men have no loser entertainment side? What are you waiting for? Let's start reading the article. After reading it, remember to try it yourself! One of the most powerful features of Linux is that it has a large number of small command tools, which can also be called its most interesting place. In these large number of useful commands and scripts, you will find that a few command tools are not so useful - if you are unwilling to say yes
January 29, 2015

CVE-2015-0235: Detection and repair of high-risk vulnerabilities in Linux glibc

one thousand two hundred and fifty-six thirteen
These days, I reviewed the operation and maintenance knowledge, and didn't pay much attention to the industry news. But when I paid attention, I again "poked holes". Since the last CVE-2014-6271 vulnerability broke, Linux has once again broken out a serious vulnerability: CVE-2015-0235-Linux glibc high-risk vulnerability. Individuals or enterprises using Linux systems, please fix it immediately when you see the news! The following are the detection and repair methods I reprinted. My personal server Centos 6.5 has been successfully repaired: 1. Vulnerability Overview 2015/01/28
January 14, 2014

File hiding attribute of Linux basics

five thousand four hundred and forty-eight zero
I have reviewed the basic knowledge of Linux in the past few days. I will record some weak knowledge points here so that I can review the file under Linux. In addition to permission attributes, there are some hidden attributes that must be displayed using lsattr, as shown below:[ root@localhost ~]#Lsattr test -------------- The first column in the test result is 13 short crossbars, each of which is an attribute. If the attribute is set at the current position, the phase will be displayed
July 28, 2014

Connect to Windows remote desktop through rdedesktop under Linux

twenty-one thousand one hundred and twenty-six eight
Itching at home, he replaced the system of the notebook with Linux. After receiving the alarm from the company server, it suddenly occurred to me that VPN remote processing was needed. I have to work on the remote desktop under Linux again. The following is a simple record (by no means a tutorial post): 1. Actor: rdesktoprdedesktop is a client program that supports Windows remote desktop connection under Linux. It can be used to remotely access Windows desktop under Linux system, and supports multiple versions. RDesktop supports G under sourceforge
December 12, 2015

Resolve the PAM authentication failed error when Linux modifies the password

eleven thousand seven hundred and twenty-eight twenty-five
Recently, I received an operation and maintenance development task, which requires the development of an account management system to manage the root accounts of more than 3000 Linux servers in a batch system, realize the regular modification of root to random password and encryption storage, and provide the operation and maintenance management WEB foreground with password query and decryption interface and other functions. At the beginning, I developed a prototype based on php+ssh2_exec. All the basic functions have been realized. As a result, the boss said that I am a little good at PHP in the operation and maintenance here, but it is not easy to maintain later. I was also persuaded, because the writing is done, do you want to reconstruct
WEB application Read more
April 24, 2016

The method of prohibiting users from accessing real IP addresses after Nginx website uses CDN

thirteen thousand six hundred and eighteen forty-nine
Have you ever been forced to operate and maintain the public network WEB? Surely you have seen all kinds of malicious scanning, pulling, injection and other malicious acts? For direct external WEB servers, we can directly ban these malicious requests through iptables, Nginx deny instructions or programs. For websites with a layer of CDN or proxy, these methods may fail. Personal websites, in particular, may walk on the Internet with a VPS and a free CDN. Not every CDN can accurately intercept various malicious requests, more
July 7, 2019

CloudFlare Edge Computing Workers: Blog Jumps to the Middle Page

three thousand two hundred and eighteen forty-two
On April 27, I had the honor to participate in the course "The Latest Edge API of CloudFlare, Creating a Serverless Architecture", which was organized by Aftership and led by Meng Xin, a big ox of CloudFlare. Because this course is very grounded, most of the content is in practice, unlike some sharing who just talk about theory and spell out PPT, it is hard to understand. When sharing, it is the same way, but when you really try it, it is different. Duang~, of course, another reason is that Zhang Ge's blog is also using Clos
November 3, 2021

APISIX plug-in development refined speed limiting plug-in

two thousand six hundred and ninety-three zero
In the actual business scenario, the APISIX speed limit is too general to meet the business requirements. In the end, we modified ourselves on the basis of the limit count plug-in, redesigned a speed limit mechanism, which can set differentiated access speed limits for different consumers for different services to meet the more refined speed limit requirements of the production environment
September 10 · 2015

Measured acceleration effect of Nginx server starting pagespeed

eleven thousand three hundred and forty-six twenty-one
Last week, a webmaster asked me if there was any conflict between fastcgi_cache and pagespeed acceleration. On second thought, both of them are relatively native, so there should be no compatibility problem. As for the friend's question about the priority of the two mechanisms, I thought about it. Since fastcgi_cache has been cached to local files, pagespeed must be post processed. Generally speaking, when a user accesses the WEB, Nginx should first call the fastcgi cache, and then page
July 22, 2015

Nginx maps different reverse proxies through the secondary directory (path) to avoid IP+port access

five thousand six hundred and ninety-eight nine
This is the case summary of my last company. I found that I have been lying in the draft box for several months. I will sort out and publish it when I have time today. First, let's talk about the two cases mentioned by the developer: ① The same domain name needs to be reverse proxied to the foreground and background (different machines and ports); ② The IP+port mode needs to be adopted and embedded in the APP as an alternative after DNS pollution. For the first problem, it is very easy to solve it: you can reverse different nodes by distinguishing secondary directories, so the code is similar to the following: server {li
March 13 · 2014

Notes on the installation of HTTP accelerator varnish (1)

three thousand five hundred and sixty-eight thirty-two
I read the shared varnish installation manual in the morning, and I'm a little confused. Well, it seems that I'd better install it first! The company's servers cannot be connected to the Internet, and can't be downloaded and installed directly with wget or yum commands. Every time I see online installation codes posted by other people's blogs, there is always a wave of envy and "hate"... Well, since you can't access the Internet, you can only download the source code to compile and install it! Varnish 3.0.4 Download address: http://repo.varnish-cache....
May 2, 2019

Share an alternative application case of Nginx reverse proxy

six thousand two hundred and ninety-four thirty-seven
In front of the blog, I shared an article, "Sharing an Alternative Application Case of Nginx Forward Agent". Not long after that, as a firefighter, the blogger received another "F" request for "W" type, "T" type, and "F" type. The scenario is similar to the last time, and it is also a third-party application introduced by the department. It is deployed in various network areas and cannot be directly accessed from the OA office area. At present, operators need to log in to the Windows springboard machine to open the WEB console of these applications. It is not convenient, and there is a certain amount of maintenance work for Windows servers, so we found our team
February 27, 2014

Resolve that the Tomcat data connection pool cannot be released

nine thousand four hundred and fifty-three twelve
Recently, the developers of the company's Testing Center Reporting System (SMC) have come to me from time to time, saying that users are always unable to log in. A few days ago, because of the Jboss cluster testing work on hand, it was found that when the user could not log in, it would be better to reload the project in Tomcat, but only as a palliative, because it would be unable to log in again in a few hours. This morning, the developer Xiao Mao came to me again and asked me to help cure this problem. It's hard to guarantee that the user will not complain after delaying for too long. A simple analysis of
September 2, 2017

Haproxy installation and deployment documents and multi configuration file management scheme

three thousand and thirty-seven eight
Recently, I was responsible for the construction project of a unified access layer, which involves the operation and maintenance deployment of Haproxy and ospf. This article shares the operation and maintenance deployment specifications I sorted out after deploying Haproxy, and implements the multi profile management scheme of Haproxy. 1、 Deployment and installation 1. Download the latest stable version of the source code package Download address: http://www.haproxy.org/download/1.7/src/haproxy-1.7.9.tar.gz2 , Compile and install tar z
October 6, 2015

Nginx configures Proxy_cache or Fastcgi_cache cache acceleration under multi site

seven thousand five hundred and four nineteen
Zhang Ge has shared many tutorials about cache acceleration on his blog, and he is constantly groping for the best website static cache acceleration scheme. Here is a brief summary: 1. My friends who use virtual hosts recommend caching plug-ins or php code version caching scheme=> Click here to directly reach 2. Friends who use independent hosts recommend Nginx's Fastcgi pure static cache scheme=> Click here to get to the point that after I shared the Fastcgi cache of Nginx, many friends have succeeded. However, I have friends' feedback, I don't know how much
February 3, 2018

The most simple and practical optimization scheme of static and dynamic separation for small websites

twelve thousand three hundred and three forty-five
I haven't written an article for a long time, and the blog has grown. Today, I squeeze some time to share some dry goods, which is also a response to many webmaster friends' comments. Many webmaster friends ask why the static file of Zhang Ge's blog is another domain name? What are the benefits? How? In fact, this is a kind of separation of movement and stillness, but I used a lazy method to achieve this, rather than a complete separation of movement and stillness, but the final effect is not very different. First, let's talk about the concept and benefits of the separation of movement and static. 1、 Dynamic and static separation Our website can be divided into two types of data
February 11, 2014

Speed up Nginx web server with PageSpeed

four thousand two hundred and ninety eight
It is no secret that the faster the website is loaded, the higher the visitor interactivity, retention rate and conversion rate will be. Amazon's sales will decrease by 1% for every 100 milliseconds of website delay; The delay increases by 500 milliseconds, which means that Google's traffic and revenue will decrease by 20%. If there is a way to speed up your website server without upgrading to a more powerful server, there is no reason not to try this method. In this tutorial, I will introduce how to optimize the Nginx website server to improve its performance. Although the Nginx website server itself has become the fastest