Nginx 설치

$ sudo apt install Nginx 

certbot을 통한 인증서 발급

$ apt-get install python3-certbot-nginx 
$ certbot certonly --nginx -d {myDomainName} 

/etc/letsencrypt/live/{myDomainName}/

  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

4개의 파일이 존재하는지 확인

Nginx

$ touch /etc/nginx/conf.d/{원하는 이름}.conf
$ sudo vim /etc/nginx/conf.d/{원하는 이름}.conf
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;
}
$ nginx -t
$ sudo service nginx restart

 

$ sudo vim /etc/nginx/sites-available/{원하는 이름}.conf

server {
  listen 80; #80 port(HTTP)로 받을때
  server_name <도메인 주소>; # 없을경우 localhost
  return 301 https://<도메인 주소>$request_uri;
}
server {
  listen 443 ssl http;
  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;
  }
}

location, proxy_pass에서 각 마지막 위치의 슬래쉬 여부에 따라 꼬일 수 있으니 파악하고 사용하기.
~^ 등의 표현식 제공

sites-enabled에 심볼릭 링크 생성

$ sudo ln -s /etc/nginx/sites-available/{원하는 이름}.conf /etc/nginx/sites-enabled

테스트 후 실행

$ sudo nginx -t

$ sudo service nginx start
# 설정을 변경했다면 꼭 sudo service nginx restart를 진행해주자...

+ Recent posts