2. NGINX 설치 With HTTPS(CertBot)

Nginx 설치

sudo apt update
sudo apt install nginx -y

  • Nginx 서비스 관리
sudo systemctl start nginx
sudo systemctl enable nginx

방화벽 UFW 포트 설정

sudo ufw allow 80
sudo ufw allow 443

  • 도메인:80 으로 접속하면 Nginx 페이지를 확인 할 수 있음

HTTPS With CertBot

  • Certbot 설치
sudo apt-get update
sudo apt-get install certbot
  • 인증서 발급 및 설치
sudo certbot certonly --standalone -d ${domain}

  • 인증서 위치 : /etc/letsencrypt/live/${doman}/
  • 인증서 확인 :-
sudo certbot certificates
# 실행 결과
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: ${domain}
    Domains: ${domain}
    Expiry Date: 2024-01-21 04:51:09+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/${domain}/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/${domain}/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nginx.conf 파일

  • 경로 : /etc/nginx/conf.d
  • 설정 파일 생성
    sudo vim nginx.conf
server {
    listen 80;
    server_name ${domain};

    return 301 https://${domain}$request_uri;
}

server {
    listen 443 ssl;
    server_name ${domain};

    ssl_certificate /etc/letsencrypt/live/${domain}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/${domain}/privkey.pem;

    location / {
        proxy_pass http://${domain}:3001; // 프론트 서버로 이동 
        add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
        add_header 'Cross-Origin-Opener-Policy' 'same-origin';
    }

    location /api/ {
        proxy_pass http://${domain}:9996; // 백앤드 서버로 이동 
        charset utf-8;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

 

'Infra > NGINX' 카테고리의 다른 글

1. NGINX란? (웹 서버 사용 이유)  (1) 2024.01.30