Nginx+Tomcat集群配置

时间:2023-03-08 15:54:33

Nginx+Tomcat集群配置

一台虚拟机作为Nginx服务

两太虚拟机配置Tomcat+jdk环境

Nginx测试

启动:

cd usr/local/nginx/sbin
./nginx --->该启动默认使用(/usr/local/nginx/conf/nginx.conf)的配置文件 #如果要指定自己的配置文件路径
./nginx -c /x/xx/xxx/nginx.conf

检测配置文件是否正确:/xx/sbin/nginx -t

浏览器测试:http://ip:80http://ip (nginx的默认端口80)

关闭:./nginx -s stop

重新载入配置文件:/xx/sbin/nginx -s reload

重启Nginx:/xx/sbin/nginx -s reopen

查看线程

ps -ef | grep nginx (查询主进程号)

kill -9 主进程号 (强制关闭)

配置集群环境

修改配置文件

/usr/local/nginx/conf/nginx.conf

1)配置Tomcat集群节点

在http节点内部,server节点外部添加以下内容

upstream tomcat-servers {
server 192.168.1.103:8080;
server 192.168.1.104:8080;
} #反向代理
在server节点内部:
location / {
proxy_pass http://tomcat-servers;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
}

启动所有tomcat节点,启动nginx,测试

负载均衡解决方案:

1)轮询,该方式是默认的

	   upstream tomcat-servers {
server 192.168.1.103:8080;
server 192.168.1.104:8080;
}

2)iphash,可以有效的解决session问题

该方案将用户IP地址与第一次访问到达的真正服务器做了绑定,session不会丢失

upstream tomcat-servers {
ip_hash;
server 192.168.1.103:8080;
server 192.168.1.104:8080;
}

3)weight:权重轮询,以下方案访问服务器时以1:2比例访问

upstream tomcat-servers {
server 192.168.1.103:8080 weight=1;
server 192.168.1.104:8080 weight=2;
}