nginx : ver.1.20.1
tomcat: ver. 8.0
nginx를 이용 무중단 배포 시도 중 아래와 같이 .. 세션이 끊기는 현상 발생
nginx 설정(nginx.conf)은
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
client_max_body_size 0;
#gzip on;
upstream tomcatGroup{
ip_hash;
server 0.0.0.0:8088;
server 0.0.0.0:8092;
}
server {
#listen 8080; //8087
listen 80;
listen [::]:80;
server_name (domain name);
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://tomcatGroup;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
#proxy_set_header X-NginX-Proxy true;
#proxy_redirect off;
charset utf-8;
proxy_set_header Host $http_host;
proxy_cookie_path ~*^/.* /;
#add_header 'Access-Control-Allow-Origin' '*';
}
}
...
}
upstream load balancing 할 IP 주소, port 입력 후 location에 proxy_pass에 upstream 지정해둠
//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xml:xsi= ...
<distributable/> //세션 공유를 위해 추가
</web-app>
검색 결과 한가지 더 해줘야함. tomcat/conf/server.xml 에서
//server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port= ...
...
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat8092">
//주석 해제
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
...
</Engine>
</Service>
</Server>
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
이 태그 주석을 해제함.
아래 톰캣 공식 문서에 자세한 내용이 나와있음.
tomcat:8092 startUp -> Tomcat:8088 shutDown 후 다시 확인
참고:
https://tomcat.apache.org/tomcat-8.0-doc/cluster-howto.html
'server > nginx' 카테고리의 다른 글
nginx backup 설정 (feat. tomcat clustering) (0) | 2023.01.27 |
---|