Backend

How to configure nginx as reverse proxy for node.js(express) with aws ec2.

하우아유두잉 2019. 12. 18. 16:31

 

 

node.js express memory optimization 관련해서 정보를 찾던 중

reverse proxy 레벨에서 압축(gzip)을 사용하면 도움이 된다는 사실을 알게 되었다.

 

그래서 내 프로젝트에 nginx로 reverse proxy를 구현하고자 한다.

 

 

express 서버는 3000포트를 사용한다.

nginx에서 8000포트로 들어오는 요청을 127.0.0.1:3000로 포워드한다.

 

 

대략 아래와 같은 구조로 만들려고 한다.

이렇게하면 요청이 Nginx를 거쳐서 접근이 되기 때문에

내부 서버의 포트를 외부로부터 숨길 수 있다.


(이 글에선 node express 서버 구축과 aws 인프라 설정은 생략하겠다.)

 

먼저 nginx conf 파일을 아래와 같이 생성하자.

$ nano /etc/nginx/sites-available/domain.kr

// /etc/nginx/sites-available/domain.kr

server {
        listen 8000;
        server_name _;
        location / {
                proxy_redirect off;
                proxy_pass_header Server;
                proxy_set_header host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Scheme $scheme;
                proxy_pass http://127.0.0.1:3000;
        }
}

이제 8000포트로 들어오는 요청은 127.0.0.1:3000으로 포워딩된다.

 

$ ln -s /etc/nginx/sites-available/domain.kr /etc/nginx/sites-enable/domain.kr

$ service nginx restart

 

 

접속을 해보자

 

:443

 

:4433

 

 

정상적으로 동작하는걸 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

 

참고사이트