본문 바로가기

SpringBoot (JAVA)

NginX 를 이용한 무중단배포

반응형

API서버를 운영하면 수정 후 재시작 해야 할 경우가 생긴다

 

이 경우에 그냥 재시작을 하게되면 현재 연결되어있는 사람들에게는 에러가 뜨게된다

 

그리고 재시작 하는 몇초 사이엔 서버에 접속 할 수가 없다

 

그렇기 떄문에 무중단 배포를 해야한다.

 

아래의 소스는 NginX 의 nginx.conf 파일 내용이다

 

서버 교체가 필요할떄마다 location의 주석을 변경하여 포트를 바꿔준다

 

이렇게 하면 항상 서버 2개가 켜져있고  도메인으로 접속했을떄 location에서 가리키고있는 서버를 연결해준다

 

#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;   
    keepalive_timeout  65;
    large_client_header_buffers 4 16k;

    server {
        listen       80;
        listen       443 ssl ;		
	server_name  ip or 도메인(192.168.0.1 192.168.0.2 처럼 여러개 넣을땐 띄어쓰기);

        ssl on;
    	ssl_certificate /nginx/www_kr_NginX_cert.pem;
    	ssl_certificate_key /nginx/www_kr_NginX_key.pem;
       
        location / {
            proxy_pass http://localhost:8088;
            #proxy_pass http://localhost:8087;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            client_max_body_size 100M;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

 

반응형