[ts-blind] 인프라 설정하기 - 2

노디·2022년 3월 4일
0

ts-blind

목록 보기
1/3

지난 시간에는 AWS를 이용해서 EC2 인스턴스를 생성하고, 생성한 인스턴스에 ssh로 접근해서 git, pm2, nginx를 설치했습니다. 그리고 Github에서 express 프로젝트 소스코드도 받아왔습니다.
이번 시간에는 nginx를 프록시 서버로 이용해 80번 포트가 localhost:8000에 맵핑되도록 설정을 변경해봅시다.


⚙️ .conf 설정 파일 만들기

생성한 인스턴스에 접근합니다.

ssh -i [.pem file path] [user name]@[ip]

/etc/nginx 폴더에서 📁 site-availables와 📁 site-enables 폴더를 생성합니다.

cd /etc/nginx
mkdir site-availables site-enables
  • site-availables: 프록시 관련 설정을 저장하는 폴더
  • site-enables: 설정을 실제로 적용하기 위한 폴더

site-available 폴더로 이동한 뒤 .conf 파일을 생성합니다.

cd site-availables
vi blind.conf

blind.conf에 80번 포트로 들어오는 요청을 http://localhost:8000으로 보낸다는 다음 내용을 적어줍니다.

server {
	listen 80;
	server_name ts-blind.com;
	location / {
	proxy_pass http://localhost:8000;
	}
}

:wq로 내용을 저장하고 vi 에디터를 빠져나옵니다.


🔗 심볼릭 링크(바로가기) 만들기

site-availables의 설정 파일을 site-enables로 복사하지 않고 해당 파일에 대한 바로가기를 만들 것 입니다.
site-enables 폴더로 이동한 뒤, 금방 만든 설정 파일 blind.conf의 심볼링 링크를 만듭니다.

cd ../site-enables
ln -s ../site-availables/blind.conf ./
ls
# ✨ blind.conf 파일의 심볼릭 링크가 생겼습니다.

♻️ nginx.conf 설정 변경하기

/etc/nginx/nginx.conf 파일에는 디폴트 nginx 설정값이 있습니다.
이 파일에 방금 만들어준 blind.conf 설정을 추가해줍니다.

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/site-enables/*.conf; # <- 여기에 추가해줍니다. (마지막 세미콜론 누락주의!)
    # 기존의 server {...} 들은 주석처리 해줍니다.
}

설정을 변경했으므로 nginx 서버를 재시작해줍니다.

sudo nginx -s reload

웹브라우저를 통해 인스턴스의 퍼블릭 ip 주소로 접근했을 때 Express 초기화면이 반겨준다면 맵핑 설정에 성공한 것입니다.
그렇지 않고 502 Bad Gateway가 나타난다면, 프로젝트의 포트가 blind.conf에서 설정한 8000과 동일한지 확인해봅시다.


🚫 nginx 로그 확인하기

nginx의 에러와 접근로그는 /var/log/nginx에서 확인할 수 있습니다. root 계정 전환이 필요합니다.

sudo su
cd /var/log/nginx
ls
# access.log와 error.log 파일들

root 계정을 빠져나오려면 exit 명령어를 사용합니다.

0개의 댓글