ubuntu에서 nginx reverse-proxy 설정하기

노력을 즐기는 사람·2020년 9월 16일
1
post-thumbnail

nginx 최신버전(1.14)을 사용하다보니 기존에 참고하던 책과 구조가 좀 달라진 것 같다. 그래서 새로 포스팅을한다. 참고문서1를 열심히 참고했다.

nginx 설치

다음 명령어를 차례로 실행한다. sudo apt update , sudo apt install nginx

default virtual host 해제

ubuntu apt 패키지 매니저로 nginx를 설치하면 기본적으로 default virtual host를 설정해놓는다. 이것을 해제해야 한다. 다음 명령어를 실행하자.
unlink /etc/nginx/sites-enabled/default

conf 수정

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로 접근해보자.

HTTP, HTTPS 방화벽 해제하기

아마존 리눅스 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 각 포트를 개방해주자.

HTTPS 적용하기

내 블로그에 포스팅 해놨음 고마워 과거의 나 !

profile
노력하는 자는 즐기는 자를 이길 수 없다

0개의 댓글