Server/Web & Server

리눅스에서 Nginx + Tomcat 서버 구축하기(3)

Fehoon- 2017. 6. 13. 20:28

 

 

1. 리눅스에서 Nginx + Tomcat 서버 구축하기(1) : Nginx설치

2. 리눅스에서 Nginx + Tomcat 서버 구축하기(2) : Tomcat8 설치

3. 리눅스에서 Nginx + Tomcat 서버 구축하기(3) : Nginx와 Tomcat 연동

 


3장. Nginx와 Tomcat(톰캣) 연동

 

 

1. Nginx config 수정

 

# vi /etc/nginx/conf.d/tomcat.conf (또는 gedit으로 실행)

tomcat.conf 파일을 새로 생성해주고 default.conf는 백업해둔다.


 

# mv /etc/nginx/conf.d/default.conf default.conf.bk

 



 

#tomcat.conf
server {
    listen       80;
    location / {
      # 80포트로 접속한 경우 로컬 8080 포트로 넘김
      proxy_pass         http://localhost:8080;
 
      # 넘겨받을 때의 버전을 지정
      proxy_http_version 1.1;
 
      # 넘겨받을 때의 헤더 정보를 지정
      # 호스트 명
      proxy_set_header   Host $host;
      # 클라이언트가 Host 헤더로 넘기는 오리지널 호스트명
      proxy_set_header   X_Forwarded-Host $host;      
      # 프록시 서버의 호스트명
      proxy_set_header   X-Forwarded-Server $host;
      # proxy 서버의 IP가 아닌, 실제 클라이언트이 IP정보
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
      # proxy 에서 요청할때 사용하는 프로토콜 정보 (http or https)
      proxy_set_header   X-Forwarded-Proto $scheme;
    }
 
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}



 
로드 벨런싱 구성의 경우는 아래의 방법으로 편집한다.





#tomcat.conf
upstream backend {
    # ip 나열...
    server localhost:8080;
}
 
server {
    listen       80;
    location / {
      proxy_pass         http://backend;
      proxy_http_version 1.1;
      proxy_set_header   Host $host;
      proxy_set_header   X_Forwarded-Host $host;
      proxy_set_header   X-Forwarded-Server $host;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header   X-Forwarded-Proto $scheme;
    }
 
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
 
 


 

자 이제 해당 Config로 Nginx를 실행하기위해서

 

/usr/lib/systemd/system/nginx.service 파일을 실행해보자 (Centos7기준)

 

 

ExecStartPre 라고 /usr/sbin/nginx -t -c /etc/nginx/nginx.conf 라고 보일 것이다.

Nginx 실행시 nginx.conf의 컨피그를 읽어들이면서 실행한다는 의미인데 해당 경로로 가서 해당 컨피그를 확인해보도록하자.

 

/etc/nginx 파일을 보면 맨 밑에 include 구문이 보일 것이다.

이 구문을 작성한 tomcat.conf 로 변경해주자 ! 

 

 

 

#nginx -s stop 이나 #nginx -s quit로 서버가 켜져있다면 종료 후

#systemctl start nginx 로 서버를 다시 실행시켜 주도록하자.

 

우분투의 경우는 아래 링크의 경로를 참고하면 된다.

https://serverfault.com/questions/821284/how-can-i-change-nginx-configuration-file-path

 

참고:

http://chomman.github.io/blog/java/tomcat/nginx/tomcat-nginx/

http://amoogi.azurewebsites.net/12171

 

공감 Push Plz ~

반응형