五、nginx配置tomcat集群
1. 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而- - apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 。nginx运行起来占用的资源CUP非常少,对于启动、重启都非常快速,在低配电脑上也可以快速的运行。
2. Nginx 配置简洁, Apache 复杂
- 对于这一点使用过nginx的用户来说就会深有体会,如果不是学习他的原理以及各种细节,几乎一会的时间就可以搭起来一个nginx集群服务器,搭建可以按着下面的步骤自己搭建。
3. 最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。
4. nginx的负载能力比apache高很多
- 如果你的网站有大量的高并发用户访问可以试着使用nginx来作为负载均行。
目的:使用nginx解决高并发情况下的负载均衡问题:
1)-负载均衡请求分发(通过使用nginx来做负载均衡)
2)-文件上传(一个tomcat接受文件处理,其他tomcat接受非文件处理),存在资源同步问题(可以通过在linux上搭建NFS服务器来实现资源共享)
3)-不同的tomcat通过session来实现共享(否则会有不断请求登录的问题),session共享问题使用tomcat-redis-session_manager来解决。
案例:使用两台tomcat服务器:一台处理文件,一台处理非文件请求:
server1: 192.168.1.101:8080
server2: 192.168.1.101:8081
详细配置过程:
#upstream设置,设置代理服务器(负载均衡池),默认的负载均衡方式是轮询,另外一种是ip_hash
upstream tomcat_server {
#ip_hash;
server 192.168.1.101:8080 weight=1;
}
#处理上传和下载的图片文件服务器,设置代理服务器(负载均衡池),默认的负载均衡方式是轮训,另外一种是ip_hash
upstream image_server{
server 192.168.1.101:8081 weight=1;
}
在server中配置:
# iamge 服务器location
location ~*/demo/image/ {
proxy_pass http://image_server;
}
location ~*/demo/ {
# HTTP代理模块 proxy,主要是用来转发请求到其他服务器
# 如果后端服务器返回502,504,执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现failover。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
# 变量$host等于客户端请求头中的Host值。
proxy_set_header Host $host;
#后端的web服务器可以通过X-Forwarded-For获取真实的IP地址,$remote_addr客户端的ip地址
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://tomcat_server;
}