如何实现重启tomcat服务而不影响访问?
解决方法:
我的服务器时linux。
1.至少要两台tomcat部署同一套代码,端口分别为8081和8082
2.使用nginx实现负载均衡,nginx的服务端口为8080,用户直接访问8080,通过配置nginx的分配规则去分配请求道8081和8082服务上
3.假如要重启8080tomcat,就要到nginx的nginx.config文件中upstream配置的8080服务注释掉,在sbin目录下执行 ./nginx -s reload 重载一下。这样就可以把访问8080的请求拦截到8081服务,这样就可以重启8080端口了,所以重启8081服务也一样。两个服务交替重启实现圆滑过渡,请求数据就不会丢失。
nginx.config配置:
upstream tomcat_server{
server 192.168.0.188:8081;
server 192.168.0.188:8082;
}
server {
listen 8080;
server_name 192.168.0.188;
charset utf-8;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server;
proxy_set_header X-Real-IP $remote_addr;
}
}