리버스프록시
클라이언트와 서버 사이에서 중개자 역할을 하는 서버로 클라이언트는 리버스 프록시 서버에 요청을 보내고, 리버스 프록시 서버는 해당 요청을 대상 서버로 전달하여 응답을 받아 클라이언트에게 전달
ss -tuln
python3 --version
sudo apt-get install nginx certbot python3-certbot-nginx
sudo certbot
NGINX proxy 설정(원하는 에디터로 작업하시면 됩니다.)
sudo nano /etc/nginx/sites-enabled/*
server_name에 도메인이 들어간 곳을 찾아서 root
, index
, location 내부 값
을 주석처리하고, 다음을 입력한다.
# location / {} 내부에 작성
# 프록시 주소
proxy_pass http://localhost:3000;
# 클라이언트가 요청한 원래 호스트 정보를 유지
proxy_set_header Host $host;
# 실제 클라이언트의 IP 주소를 유지
proxy_set_header X-Real-IP $remote_addr;
# 프록시 서버를 통해 전달된 클라이언트의 IP 주소 목록을 유지
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 원래 프로토콜 (예: HTTP 또는 HTTPS)을 유지하는 데 사용
proxy_set_header X-Forwarded-Proto $scheme;
ctrl+X
- y
- enter
입력)변경사항 확인 후 재실행
sudo nginx -t
sudo service nginx restart
sudo crontab -e
0 0 * * 0 sudo certbot renew --quiet
sudo certbot renew --quiet
명령이 실행됩니다.sudo certbot renew --dry-run
위의 과정을 통해서 NGINX를 사용해 도메인에 SSL을 적용하고, 서버의 다른 포트로 리버스 프록시 설정을 할 수 있었다.
추가적으로 살펴볼 것은 호스트 네임, location 경로에 따라서 프록시 설정을 다르게 하고 싶은 경우와 Socket등의 사용으로 헤더에 어떤 설정을 해 줘야할까? 등의 주제다.
심화주제로 로드벨런싱, 무중단 배포에 대해서 알아보면 좋을 것 같다.
sudo apt update
sudo apt install git
git --version
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v