개발 이슈

[Node.js] NGINX 프록시 설정과 기본 페이지 제거

소복 2020. 3. 19. 22:47

AWS EC2에서 Node.js로 Express 앱을 돌리고 NGINX로 proxy 설정으로 구매한 도메인에서 Express 앱으로 연결하는 게 목표였다

하지만, proxy 설정 후에도 계속되는 기본 페이지인 'Welcome to nginx!' 때문에 삽질했다 🤯

 

설명은 NGINX 설치, 프록시 설정, 기본 페이지 제거 순으로!! (Node.js는 이미 실행하고 있다는 가정)

 

( 간단한 NGINX 소개

 NGINX는 Event-Driven 방식으로 클라이언트의 요청을 처리해주는 비동기 기반의 웹 서버이다.

 동시 접속 처리에 특화된 웹 서버 프로그램으로, 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용함으로 효율적이다.

 정적파일을 다이렉트로 제공해주기 때문에 백엔드 서버에 부담을 주지 않고,

 클라이언트는 NGINX 포트로만 백엔드 서버에 접근할 수 있어 보안에 도움이 된다.)

 

1. NGINX 설치

sudo apt-get install nginx

를 통해 NGINX를 설치한다.

 

2. NGINX 설치 확인

sudo systemctl status nginx

를 통해 설치가 잘 되었는지 확인한다.

 

3. NGINX 시작과 프록시 설정

sudo service nginx start

로 NGINX를 실행시킨다.

이어서 밑의 두 명령어로 프록시 설정 파일을 생성해준다. (node-server가 설정 파일 이름이며, 다른 이름으로 지으셔도 됩니다.)

 

< 설정 파일 내용>

 

server { 

listen 80;

server_name [IP 주소 혹은 도메인],

location / {

proxy_pass http:127.0.01:[실행중인 node app 포트 번호]

}

 

4. 파일 연결

sudo ln -s /etc/nginx/sites-available/node-server /etc/nginx/sites-enabled/

명령어로 방금 생성한 설정파일과 연결된 파일을 /sites-enabled/ 생성해줍니다.

이어서 해당폴더에서 la -alF 명령어로 연결된 것을 확인할 수 있습니다.

 

5. NGINX 기본 페이지 제거

4번에서 보듯이 /sites-enabled/에 default 라는 파일이 있습니다.

이 파일이 기본 NGINX 프록시 설정 파일이기 때문에 해당 파일을 없애주시면 됩니다.

(저는 혹시 모를 경우를 위해 상위폴더로 옮겼습니다.)

 

6. NGINX 재설정

마지막으로 nginx 설정파일을 다시 로드해주시면 끝납니다. 👍