Advantages, disadvantages and differences of nginx / Tomcat / Apache


Differences between nginx / Tomcat / Apache


Apache is a modular server, which can run on almost all computer platforms. It is an application server


The configuration is relatively complex, and the module cannot support dynamic pages without scripts


It supports many modules and stable performance. Because it is static parsing, it is suitable for processing static files (HTML, pictures, etc.), and can also support dynamic pages through extended scripts, modules, etc


Tomcat is an application server and just a servlet container


Basically, it can only be used as a java server


Processing dynamic requests is a container for compiling servlets


Nginx is an HTTP and proxy server. Nginx is often used as a static content service and proxy server to forward external requests to application services (tomcat, Django).


Only suitable for static and reverse proxy


Load balancing, reverse proxy, dynamic and static separation. Static requests can be processed directly through nginx, and the processing efficiency is higher than that of Apache. Only dynamic requests need to be forwarded to Tomcat for processing


Apache / nginx should be called HTTP server

Tomcat is an application server, (Java project fhadmin. CN). To be exact, it should be a container for servlet / JSP applications.


An httpserver is concerned with transmission and access control at the HTTP protocol level, so

You can see proxy, load balancing, etc. on Apache / nginx. The client accesses the resources stored on the server (HTML files, image files, etc.) through HTTP server

application server

It is the container for executing applications. First of all, it needs to support the runtime of the development language (for tomcat, it is Java). Secondly, we need to support application related specifications, such as class libraries and security features. For tomcat, it is necessary to provide standard class libraries for JSP / sevlet operation.

For convenience, the application server often integrates the functions of HTTP server, but it is not as powerful as professional HTTP server. Therefore, the application server often runs behind the HTTP server, executes the application, converts the dynamic content into static content, and then distributes it to the client through HTTP server.

This work adoptsCC agreementThe author, link and reprint of this article must be indicated