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
정상적으로 동작하는걸 확인 할 수 있다.