리버스 프록시는 외부에서 들어오는 요청을 내부의 적절한 서버로 전달하는 중간 역할을 수행하는 서버입니다. 이를 통해 외부 사용자는 하나의 공인 IP와 포트를 사용해 다양한 내부 서비스에 접근할 수 있으며, 보안 강화, 부하 분산, SSL 암호화 등의 기능을 구현할 수 있습니다. 리버스 프록시는 일반적인 포트 포워딩보다 더 유연하고 다양한 기능을 제공하여, 네트워크 인프라를 효율적이고 안전하게 관리하는 데 중요한 역할을 합니다.

Ubuntu

  1. nginx 설치
apt update
apt install nginx
  1. 설정
vi /etc/nginx/sites-available/example.com #example.com 파일명은 추가 할 도메인 명

server {
    listen 80; # 외부에서 80번 포트로 들어오는 HTTP 요청을 수신합니다.
    server_name example.com; # 요청된 도메인 이름이 example.com인 경우에만 이 서버 블록을 실행합니다.

    location / {
        proxy_pass <http://192.168.1.100:5000>;  # 내부 서버의 IP 주소와 포트
        proxy_set_header Host $host;  # 원래 요청의 Host 헤더를 내부 서버로 전달합니다.
        proxy_set_header X-Real-IP $remote_addr; # 클라이언트의 실제 IP 주소를 내부 서버로 전달합니다.
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 프록시를 거친 클라이언트 IP 목록을 추가합니다.
        proxy_set_header X-Forwarded-Proto $scheme; # 요청의 프로토콜(HTTP 또는 HTTPS)을 내부 서버로 전달합니다.
    }
}
  1. 설정 파일 활성화
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  1. 테스트 및 재시작
nginx -t
systemctl restart nginx
  1. SSL 인증서 추가
apt install certbot python3-certbot-nginx
certbot --nginx -d example.com

# 자동 갱신 확인
cerbot renew --dry-run