Original address: http://www.bbtang.info/linux/web/821.html
A. Software introduction (Apache lighttpd nginx)
1. lighttpd
lighttpd is a feature with very low memory overhead, low CPU usage, good performance, and rich modules. LIGHTTPD is one of the best in many opensource lightweight Web servers. Support FastCGI, CGI, Auth, output compression (outputs compress), URL rewriting, alias and other important functions.
LIGHTTPD uses fastcgi to run PHP, which uses very few PHP processes to respond to a large amount of concurrency.
The advantages of fastcgi are:
· In terms of stability, fastcgi is a separate process pool to run CGI, a single process is dead, the system can easily discard, and then reassign new processes to run the logic.
· From the security perspective, the fastcgi and the host server is completely independent, fastcgi how down will not bring the server down,
· In terms of performance, fastcgi separates the processing of the dynamic logic from the server, and the heavy-duty IO processing is left to the host server, so that the host server can be a single-minded Io, and for a normal dynamic Web page, there may be only a small number of logical processes, A large number of images such as static IO processing do not require the involvement of logic programs (Note 1)
· In terms of extensibility, fastcgi is a neutral technical standard that can be fully supported in any language written processing program (Php,java,python ...).
2.Apache
Apache is the world's number one Web server, according to Netcraft (www.netsraft.co.uk) survey, more than 50% of the world's Web servers are using Apache.
In April 1995, the earliest Apache (0.6.2 version) was released by Apache Group. The Apache group is a non-profit organization that operates entirely over the internet, and it determines what should be included in the standard release of the Apache Web server. Allow anyone to modify the concealment, provide new features and transplant it to a new platform, and other work. When the new code is submitted to Apache group, the group reviews its content, tests it, and, if it is satisfied, it is integrated into the main version of Apache.
Features of Apache:
1) can be run on almost all computer platforms.
2) support for the latest http/1.1 protocol
3) Simple and powerful file-based configuration (httpd.conf).
4) Support for Universal Gateway Interface (CGI)
5) Support Virtual host.
6) Support HTTP authentication.
7) Integrated Perl.
8) Integrated Proxy Server
9) You can monitor the status of the server through a Web browser, and you can customize the log.
10) Support server-side include command (SSI).
11) Support Secure Socket Layer (SSL).
12) have the ability to track the user's conversational process.
13) Support FastCGI
14) Support Java Servlets
3.nginx
Nginx is a very lightweight HTTP server written by the Russians, Nginx, which is pronounced "engine X", is a high-performance HTTP and reverse proxy server, but also a IMAP/POP3/SMTP proxy server. Nginx was developed by the Russian Igor Sysoev for the second rambler.ru site of Russian traffic.
Nginx is written in an event-driven manner, so it has very good performance and is also a very efficient reverse proxy, load balancing. It has the performance of matching lighttpd, and there is no lighttpd memory leak problem, and lighttpd Mod_proxy has some problems and has not been updated for a long time. However, Nginx does not support CGI operations because it reduces some of the procedural vulnerabilities that can be caused. Therefore, you must use the FastCGI method to execute the PHP program.
Nginx as an HTTP server, has the following basic features:
Handles static files, index files, and automatic indexing; Open file descriptor buffering.
No caching of reverse proxy acceleration, simple load balancing and fault tolerance.
FastCGI, simple load balancing and fault tolerance.
Modular structure. Includes gzipping, byte ranges, chunked responses, and Ssi-filter filter. If more than one SSI exists on a single page by a fastcgi or other proxy server, this processing can run in parallel without waiting for each other.
Nginx is specially developed for performance optimization, and performance is the most important consideration, and the implementation is very focused on efficiency. It supports the kernel poll model, withstands high loads, and reports that it supports up to 50,000 concurrent connections.
Nginx has very high stability. Other HTTP servers, when encountering spikes in access, or when someone maliciously initiates a slow connection, are likely to cause the server to run out of physical memory frequently, lose response, and only restart the server. For example, once Apache has reached more than 200 processes, the Web response is significantly slower. Nginx adopts the phased resource allocation technology, which makes its CPU and memory occupancy rate very low. Nginx official said to maintain 10,000 inactive connections, it only accounted for 2.5M of memory, so a DOS-like attack on Nginx is basically useless. In terms of stability, Nginx is better than lighthttpd.
Nginx supports hot deployment. Its start-up is particularly easy, and it can be run almost 24x7, even if it runs for several months without restarting. You will also be able to upgrade the software version in the event of uninterrupted service.
two . 3 species WEB Comparison of servers:
Server |
Apache |
Nginx |
Lighttpd |
Proxy Agent |
Very good |
Very good |
So so |
Rewriter |
Good |
Very good |
So so |
Fcgi |
Not good |
Good |
Very good |
Hot deployment |
Not supported |
Support |
Not supported |
System pressure Comparison |
Very big |
Very small |
Relatively small |
Stability |
Good |
Very good |
Not good |
Security |
Good |
So so |
So so |
Technical support |
Very good |
Rarely |
So so |
Static file Processing |
So so |
Very good |
Good |
Vhosts Virtual Host |
Support |
Not supported |
Support |
Reverse Proxy |
So so |
Very good |
So so |
Session Sticky |
Support |
Not supported |
Not supported |
Note: In relatively large sites, the cost savings of the server is undoubtedly objective. Some small sites tend to have few servers, and if you use a traditional Web server like Apache, it seems to be able to survive. But there are obvious drawbacks: when Apache handles bursts of traffic (such as crawlers or Digg effects), it's easy to overload, so it's best to use Nginx.
Suggested Scenarios:
Apache background server (mainly handling PHP and some feature requests such as: Chinese URL)
Nginx Front End server (use it to take advantage of less system resources to handle static page mass requests)
LIGHTTPD Image Server
Overall, as the Nginx function is perfected, he will become the mainstream of Web server in the future.
three . Performance Test :
The response time of 3 software to dynamic pages and static page requests and concurrency will be tested separately
L static page Sohu Home
LIGHTTPD
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
64 |
60 |
462.75 |
21.6 |
100000/200 |
67 |
60 |
312.07 |
32.4 |
100000/500 |
83 |
60 |
137.24 |
72.8 |
100000/1000 Error drops occurred |
94 |
60 |
126.6 |
78.9 |
Nginx
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
34.6 |
140 |
943.66 |
10.597 |
100000/200 |
35.6 |
110 |
924.32 |
10.818 |
100000/500 |
34.3 |
110 |
912.68 |
10.956 |
100000/1000 |
37 |
160 |
832.59 |
12.106 |
Apache
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
40.6 |
170 |
690.72 |
14.47 |
100000/200 |
41.1 |
180 |
685.39 |
14.59 |
100000/500 |
42.3 |
190 |
633.64 |
15.78 |
100000/1000 |
43.1 |
200 |
547.53 |
18.26 |
Dynamic page Internal Community home
LIGHTTPD
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
1000/100 |
50 |
200 |
33.54 |
29.816 |
1000/200 |
52 |
210 |
30.43 |
32.858 |
1000/500 |
54 |
230 |
25.79 |
38.76 |
1000/1000 |
62 |
250 |
24.83 |
40.28 |
Nginx
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
1000/100 |
53.8 |
250 |
83.12 |
12.305 |
1000/200 |
55.8 |
250 |
74.05 |
13.504 |
1000/500 |
56 |
260 |
58.99 |
16.951 |
1000/1000 |
58 |
260 |
43.41 |
23.347 |
Apache
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
60 |
200 |
27.37 |
36.541 |
100000/200 |
61 |
220 |
23.82 |
41.981 |
100000/500 |
73 |
150 |
20.59 |
48.562 |
100000/1000 |
53 |
200 |
27.18 |
36.796 |
L PHPINFO function page
LIGHTTPD
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
45 |
20 |
168.06 |
59.504 |
100000/200 |
47 |
22 |
140.64 |
71.103 |
100000/500 |
49 |
24 |
52.80 |
189.386 |
100000/1000 |
The test test program died when the request reached 4840. |
Nginx
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
70 |
120 |
143.46 |
69.706 |
100000/200 |
72 |
130 |
140.57 |
71.140 |
100000/500 |
73 |
150 |
135.87 |
73.601 |
100000/1000 |
77 |
160 |
132.18 |
75.657 |
APACHE appears to drop packets
N/-C (ab parameter) |
cpu% |
Mem |
Requestspersecond |
Time taken for tests |
100000/100 |
70 |
180 |
245.73 |
40.694 |
100000/200 |
72 |
190 |
245.79 |
40.684 |
100000/500 |
75 |
200 |
241.29 |
41.443 |
100000/1000 |
77 |
220 |
236.74 |
42.239 |
Four. List of Web server resources for each major web site
Site name operating system Web server
1. portal site class:
Sohu LINUX Apache 1.3.37
Sina LINUX Apache 2.0.54
Thunderbolt LINUX Nginx 0.6.31
163 LINUX Apache 2.2.6
2. Search for classes
Baidu Unknown BWS 1.0
Google Linux GWS
Sougou FreeBSD Apache 2.2.4
Hao123 Linux Apache 2.2.4
4. E- Mail class
126 Linux Apache
Hotmail Win2003 Microsoft-iis 6.0
Sina email F5 big-IP Apache 2.2.8
263 Linux Apache 2.2.6
5. Blog Class
Sina Blog Linux nginx 0.5.35
Sohu Blog Linux Nginx
Thunder Blog Linux Nginx 0.6.32
Tianya blog F5 big-IP microsoft-iis/5.0
6 . Video Class
Youku Linux Apache
Potato Linux Apache
Ku6 Linux Apache
Six rooms Linux Nginx 0.6.14
Comparative analysis of three Web servers (Apache, Lighttpd,nginx)