Nginx에 Tomcat 또는 Node 서버 연결하기

Seong-Am Kim
3 min readAug 5, 2022

--

우리는 보안 또는 효율성을 위해 WAS 또는 WSGI 서버를 붙이고는 한다.

사실 이 부분은 의외로 간단한데 막상 연결할려고 보면 문법이 기억이 안나 정리하고자 한다.

Photo by D koi on Unsplash

여기서 핵심되는 키워드는 프록시이다. 프록시는 클라이언트와 서버 사이에서 데이터를 전달해 주는 서버 인데 여기서는 Nginx 가 이 역할을 대신한다.

우린 당장의 세팅이 바쁘기에 우선적으로 그럼 어떻게 해야 하는지 문법 부터 확인 해보고 넘어가자.

Nginx를 리눅스에 설치하였다면 기본적으로 아래 경로에 설정 파일이 있을 것이다.

마음에 드는 편집기로 다음 경로를 열어보자.

$ vim /etc/nginx/sites-available/default

그리고 아래 내용을 추가한다. 만약 SSL 인증을 사용하고 있다면 listen 443 ssl; 구문이 적혀 있는 server 블록에 위치하며 그 외엔 listen 80; 이 적혀있는 곳에 위치 시킨다.

server {   listen 443 ssl;   ...
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}
}

여기서 환경마다 달라지는 부분이 바로 port 에 대한 부분일 것이다.

Tomcat 은 기본적으로 8080 포트를 이용하기에 proxy_pass http://127.0.0.1:8080; 을 적었고 만약 다른 포트를 이용한다면 거기에 맞게 적어준다.

이제 여기서 문법적인 부분을 더 살펴보면 아래와 같다.

  • proxy_pass: 요청 전달의 대상이 되는 실제 서버
  • proxy_set_header: Nginx에선 기본적으로 “Host”와 “Connection” 헤더를 재정의하고 값이 빈 문자열인 헤더 필드를 제거한다 이 설정을 변경하기 위한 요소이다.

--

--