nginx 최신버전(1.14)을 사용하다보니 기존에 참고하던 책과 구조가 좀 달라진 것 같다. 그래서 새로 포스팅을한다. 참고문서1를 열심히 참고했다.
다음 명령어를 차례로 실행한다. sudo apt update
, sudo apt install nginx
ubuntu apt 패키지 매니저로 nginx를 설치하면 기본적으로 default virtual host를 설정해놓는다. 이것을 해제해야 한다. 다음 명령어를 실행하자.
unlink /etc/nginx/sites-enabled/default
reverse-proxy를 위한 conf 파일을 생성한다. 다음 명령어를 실행한다.
vi /etc/nginx/sites-available/reverse-proxy.conf
그리고 다음과 같이 입력한다.
server {
listen 80;
listen [::]:80;
server_name url;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://127.0.0.1:{포트번호};
}
}
netstat -tlpn
을 입력해서 현재 실행중인 서버의 포트를 확인해서 {포트번호}에 입력하자.
본인은 SpringBoot가 8080포트를 사용하고 있다.
적용이 잘됐는지 확인하기 위해서sudo service nginx reload
를 입력한 후curl http://url
을 입력하자
:wq
로 저장한 후 ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
을 입력해서 sites-enabled
에도 conf를 추가해준다.
nginx -t
를 입력해서 잘 적용이 되었는지 확인해보자.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
위와 같은 메세지가 출력되면 성공이다. 이제 도메인이나 public ip로 접근해보자.
아마존 리눅스 1에서는 이런걸 한 적이 없는데 oracle cloud의 ubuntu에서는 방화벽을 해제해줘야 하나보다. 참고문서2
80번 포트는 다음 명령어로 sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
443번 포트는 다음 명령어로 sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
각 포트를 개방해주자.