The current mainstream web server applications are Nginx and Apache. Today I will explain to you why I always recommend you to use Nginx instead of Apache?
I won’t go into details about the introduction of Nginx and Apache. You can understand it by searching on Baidu and Google. Without further ado, let’s go straight to Topic:
1, As a Web server: Compared with Apache, Nginx uses fewer resources, supports more concurrent connections, and reflects higher efficiency. This makes Nginx especially popular with virtual hosts. businessmen welcome. (Recommended learning: nginx tutorial)
In the case of high connection concurrency, Nginx is a good substitute for the Apache server; Nginx is the boss of the virtual host business in the United States One of the most frequently chosen software platforms. Able to support responses of up to 50,000 concurrent connections, thanks to Nginx for choosing epoll and kqueue as the development model.
Nginx as a load balancing server: Nginx can not only directly support Rails and PHP programs to serve externally internally, but also support external services as an HTTP proxy server. Nginx is written in C, and its system resource overhead and CPU usage efficiency are much better than Perlbal.
2, Nginx configuration is simple, Apache is complex, Nginx is particularly easy to start, and can run almost 24/7 without interruption, even if it runs for several months, it does not need to be restarted. You can also upgrade the software version without interrupting service. The static processing performance of Nginx is more than 3 times higher than that of Apache. Apache's support for PHP is relatively simple. Nginx needs to be used with other backends. Apache has more components than Nginx.
3, The core difference is that Apache is a synchronous multi-process model, and one connection corresponds to one process; Nginx is asynchronous, and multiple connections (10,000 levels) can correspond to one process.
4. The advantage of Nginx is to handle static requests and low CPU memory usage. Apache is suitable for handling dynamic requests. Therefore, Nginx is generally used as a reverse proxy on the front end to resist the pressure, and Apache is used as the backend for processing. Dynamic requests.
Advantages of Nginx over Apache
Lightweight, also serves web services, takes up less memory and resources than Apache
Anti-concurrency, Nginx processes requests asynchronously and non-blockingly, while Apache is blocking. Under high concurrency, Nginx can maintain low resources, low consumption and high performance
Highly modular design, writing modules is relatively simple
The community is active and various high-performance modules are produced quickly
Advantages of Apache over Nginx
rewrite is more powerful than Nginx’s rewrite
module There are so many, basically everything you can think of can be found
Few bugs, Nginx has relatively many bugs
Super stable
Finally, the differences between Nginx and Apache can be summarized in one sentence The words are: "Nginx is suitable for handling static requests and reverse proxy, and Apache is suitable for handling dynamic requests."
But this difference can only be manifested when the request volume reaches a certain threshold. For dynamic sites such as WordPress and Typecho, when the traffic reaches this threshold on a certain day, it is still possible. Deploy a production environment like LNMPA to deal with and resolve. Therefore, when the traffic threshold requirement is not met, choosing Nginx is the most cost-effective choice.
The above is the detailed content of Which one is better, apache or nginx?. For more information, please follow other related articles on the PHP Chinese website!