1、背景
tomcat既是一个servlet和jsp容器,也是一个轻量级的web服务器,它既可以处理动态内容,也可以处理静态内容。为什么还需要结合nginx一起使用?
原因:
(1)、tomcat处理html的能力不如nginx,处理静态内容的速度不如nginx,所以静态页面交给nginx,动态请求交给tomcat处理。
(2)、tomcat接受的最大并发数有限,接连接数过多,会导致tomcat处于"僵尸"状态,对后续的连接失去响应,需要利用nginx的高并发,低消耗的特点与tomcat一起使用。
2、Nginx优点
2.1、动静分离&反向代理
nginx是一种轻量级,高性能,多进程的web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用tomcat来实现,nginx作为代理服务器的同时,也使用其作为静态资源的服务器。静态资源通过绝对路径去访问,放在nginx服务器当中,动态资源通过url拼接字符串的方式去访问tomcat服务器。
在这里插入图片描述
2.2、负载均衡
为了解决并发,我们可以使用负载均衡,也就是我们多增加几个tomcat服务器,当用户访问的时候,请求可以提交到空闲的tomcat服务器上。
Nginx的upstream目前支持以下几种方式的分配
(1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
(2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
(3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
(4)、fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(5)、url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
在这里插入图片描述
3、Nginx反向代理配置
nginx/conf/nginx.conf: