[NginX, Spring, React, MySQL] Docker 이용한 서버 배포(1) - NginX 설치, HTTPS 설정(certbot)

Hyeseong Kim·2022년 8월 30일
0

서버배포

목록 보기
4/9

NginX 설치

$ sudo apt install nginx

certbot 이용해 SSL 인증서 발급

$ apt-get install python3-certbot-nginx
$ certbot certonly --nginx -d <도메인 주소>

NginX 설치된 경로로 이동하여 설정 파일 수정

nginx.conf 파일을 건드리기보다는 새로운 conf 파일 생성하여 진행
(이름은 마음대로 설정 ex> themint.conf)

$ sudo vim /etc/nginx/sites-available/themint.conf
# /etc/nginx/sites-available/themint.conf

server {
  listen 80; #80포트로 받을 때
  server_name <도메인 주소>; # 없을경우 localhost
  return 301 https://<도메인 주소>$request_uri;

}
server {
  listen 443 ssl http2;
  server_name <도메인 주소>;

  # ssl 인증서 적용하기
  ssl_certificate /etc/letsencrypt/live/<도메인 주소>/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/<도메인 주소>/privkey.pem;
  
  location / {
    proxy_pass http://localhost:3000;
  }

  location /api { # location 이후 특정 url을 처리하는 방법을 정의
    proxy_pass http://localhost:8081; # Request에 대해 어디로 리다이렉트하는지
    proxy_redirect off;
    charset utf-8;

    proxy_http_version 1.1;
    proxy_set_header Connection "upgrade";
    proxy_set_header Upgrade $http_upgrade;
    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;
    proxy_set_header X-NginX-Proxy true;
  }
}

저장하고 빠져나온 뒤 sites-enabled에 심볼릭 링크 생성

$ sudo ln -s /etc/nginx/sites-available/themint.conf /etc/nginx/sites-enabled

conf 파일 오류 없는지 확인하고 nginx 실행

$ sudo nginx -t
$ 

0개의 댓글