sudo apt update
sudo apt install nginx
sudo apt-get update
sudo apt-get install certbot
sudo apt-get install python3-certbot-nginx
Ubuntu 18.04 이상에서는 Python3 버전을 대체합니다.
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
아래 명령어로 설정파일을 편집 시작합니다.
sudo nano /etc/nginx/sites-available/default
아래와 같이 설정파일을 작성합니다.
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server{
listen 443 ssl;
server_name yourdomain.com
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Upgrate $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
}
저는 nestjs 앱을 3000포트로 배포했기 때문에 proxy_pass에 http://localhost:3000으로 작성해두었습니다.
sudo certbot certonly --nginx -d yourdomain.com
sudo nginx
혹시나 이미 사용하고 있는 포트번호라고 나오면 아래 명령어로 80포트와 443 포트를 사용하고 있는지 확인합니다.
sudo netstat -tulpn | grep -E '(:80|:443)'
사용하고 있는 포트라면
sudo fuser -k 80/tcp
nginx가 restart, reload 되지 않는다면
sudo killall nginx