Tomcat is both a servlet and jsp container and a lightweight web server. It can handle both dynamic content and static content. Why do we still need to use it with nginx?
Reason:
(1). Tomcat’s ability to process HTML is not as good as nginx, and its processing speed of static content is not as fast as nginx, so Static pages are handed over to nginx, and dynamic requests are handed over to tomcat for processing.
(2). The maximum number of concurrencies accepted by tomcat is limited. Too many connections will cause tomcat to be in a "zombie" state and lose response to subsequent connections. You need to use nginx's high concurrency and low consumption. Features for use with tomcat.
Nginx Advantages
2.1. Dynamic and static separation & reverse proxy
nginx is a lightweight, high-performance, multi-process web server , very suitable for use as a server for static resources, and dynamic access operations can be implemented using tomcat. While nginx is used as a proxy server, it is also used as a server for static resources. Static resources are accessed through absolute paths and placed in the nginx server. Dynamic resources are accessed through URL concatenation of strings to the tomcat server.
2.2. Load balancing
In order to solve concurrency, we can use load balancing, that is, we add a few more tomcat servers. When users access, requests can be submitted to idle tomcat servers. superior.
Nginx’s upstream currently supports the following distribution methods
(1), polling (default)
Each request is allocated to different backends one by one in chronological order The end server can be automatically eliminated if the backend server goes down.
(2), weight
Specify the polling probability, weight is proportional to the access ratio, and is used when the back-end server performance is uneven.
(3), ip_hash
Each request is allocated according to the hash result of the accessed IP, so that each visitor has a fixed access to a back-end server, which can solve the session problem.
(4), fair
Requests are allocated according to the response time of the backend server, and those with short response times are allocated first.
(5), url_hash
Distribute requests according to the hash result of the accessed URL, so that each URL is directed to the same back-end server. It is more effective when the back-end server is cached.
For more Nginx related technical articles, please visit the Nginx usage tutorial column to learn!
The above is the detailed content of Is it necessary to add nginx to tomcat?. For more information, please follow other related articles on the PHP Chinese website!