ssh 서버에 접속한다.
Cerbot 설치
Nginx 설치
3-1. Nginx 실행
- sudo systemctl start nginx
- sudo systemctl restart nginx
- sudo systemctl stop nginx
- sudo systemctl enable nginx
SSL 인증서 발급
Nginx 설정 파일을 만들고 작성해준다.
sudo nano /etc/nginx/sites-available/default
nano nginx.conf
sudo nano /etc/nginx/sites-enabled/default
server {
listen 80;
server_name xn--9r2b17b.shop www.xn--9r2b17b.shop;
location / {
return 301 https://$host$request_uri; # HTTP 요청을 HTTPS로 리다이렉트
}
}
server {
listen 443 ssl;
server_name xn--9r2b17b.shop www.xn--9r2b17b.shop;
ssl_certificate /etc/letsencrypt/live/xn--9r2b17b.shop/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xn--9r2b17b.shop/privkey.pem;
location / {
proxy_pass http://localhost:3000; # Nest.js가 로컬에서 실행 중인 포트 - 도커를 이용하면 도커 컴포즈 네임
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;
// cors는 main.ts에서 설정했으면 nginx에서느 안해도된다.
# CORS 헤더 추가
add_header 'Access-Control-Allow-Origin' 'https://main--kimminjae98.netlify.app';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
# Preflight 요청 처리
if ($request_method = OPTIONS) {
add_header 'Access-Control-Allow-Origin' 'https://main--kimminjae98.netlify.app';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Content-Length' 0;
return 204;
}
}
}