저번 포스팅에서 Servlet 클래스를 만들고 Tomcat 으로 실행시키는 것 까지 완료했다. 이번 포스팅에서는 Nginx 를 앞단에 붙이는 것을 해보겠다!
Nginx 와 Tomcat 을 연결할 때는 Reverse Proxy 를 이용한다.
알고 보면 참 간단한데 윈도우 환경에서 설정하는 방법이 잘 안나와있어서 방법을 찾기가 참 힘들었다...
파일 탐색기에서 Nginx 가 설치되어 있는 폴더 내의 conf
폴더에 들어간다.
나는 C:\nginx-1.24.0\conf
폴더에 들어왔다.
이곳에 새로 추가할 conf 파일을 만든다. 나는 servlet.com.conf
라는 이름으로 만들었다. 이곳에 아래의 내용을 작성하고 저장한다. (메모장으로 하면 된다.)
upstream tomcat {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name servlet.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass http://tomcat;
}
}
upstream tomcat
: tomcat 이 현재 localhost:8080 으로 설정되어 있다.listen 80
: 80 포트로 Nginx 를 열겠다.server_name
: host 명 (나중에 이 이름을 127.0.0.1 이라고 설정해줄 것이다)proxy_pass http://tomcat
: 80 포트로 요청이 들어오면 http://tomcat 으로 redirect 하겠다. 즉, http://127.0.0.1:8080 으로 보내주겠다.
ps. 80 포트 말고 다른 포트로 설정해도 된다. 나는 이미 80 포트를 다른 곳에서 쓰고 있어서 82 포트로 열었다.
다시 이 설정을 정리해보면, 브라우저에서 http://servlet.com:80
을 접속하면 http://127.0.0.1:8080
에게 다시 요청, 즉 tomcat 으로 구동되는 servlet 프로젝트를 불러온다는 것이다.
여기서 정말 삽질을 많이 했다. 리눅스에서는 임의의 conf 파일을 같이 추가할 수 있는 폴더가 따로 있는 것 같은데 윈도우로 하는 방법은 잘 없어서 찾기가 힘들었다...
똑같이 Nginx 가 설치되어 있는 폴더 내의 conf
폴더에 들어간다. 거기서 nginx.conf
파일을 연다. 메모장을 관리자 권한으로 열면 된다.
http 중괄호 내에서 include {tomcat 을 설정한 conf 파일};
를 추가한다.
나는 include servlet.com.conf;
가 된다.
cd C:\Windows\System32\drivers\etc
127.0.0.1 servlet.com
을 추가한다.이렇게 설정하면 servlet.com 으로 접속하는 경우 127.0.0.1 로 인식하게 된다.
즉, 자체적으로 dns 를 설정한다는 말이다.
막간 vim 명령어!
i
: 편집모드esc
: 보기 모드로 전환wq
: 저장하고 나가기wq!
: 저장하고 강제로 나가기
cmd 에서 Nginx 가 설치된 폴더로 이동해 nginx.exe -s stop
을 하고 nginx.exe
프로그램을 다시 누른다.
브라우저에서 http://servlet.com:82/hello
로 들어간다.
HelloServlet 클래스에서 작성한 내용들이 잘 나오는 것을 확인할 수 있다.
nginx 의 포트는 (나는) 82 (또는 80)
tomcat의 포트는 8080
이므로, 전 포스트에서 확인한 tomcat 으로 실행한 것이 아닌 nginx 로 실행됐다는 것을 알 수 있다.
주의 요함이라고 뜨는 것은 http 이기 때문이다. 만약 권한이 없다는 내용이 뜨면 그래도 들어가겠다고 하면 된다.
휴우 성공했다!!!ㅠㅠㅠ