Nginx 설정¶
Ubuntu 22.04 에서 nginx 를 설치했을때의 기준으로 설명합니다.
/etc/nginx/sites-enabled 로 이동후 your-domain.conf 로 아래와 같은 내용의 파일을 만듭니다. (설정 파일의 확장자를 .conf로 하지 않아도 동작합니다.)
nginx 설정
server {
listen 80;
server_name your-domain.com www.your-domain.com;
access_log /var/log/nginx/your-access.log;
error_log /var/log/nginx/your-error.log;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($request_uri ~* \.(css|js|ico|gif|png|jpe?g|svg)$) {
access_log off;
}
}
}
nginx 설정이 잘됐는지 확인하기 위하여 nginx 를 실행합니다.
Let's Encrypt SSL을 적용하기 위해 nginx용 certbot 을 설치합니다.
certbot을 사용하여 SSL 인증서를 획득합니다. 이 과정에서는 도메인 소유권을 증명해야 합니다.
/etc/nginx/sites-enabled/your-domain.conf 파일의 내용이 아래와 비슷하게 수정되었는지 확인합니다.
수정된 nginx 설정 파일
server {
server_name your-domain.com www.your-domain.com;
access_log /var/log/nginx/your-access.log;
error_log /var/log/nginx/your-error.log;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($request_uri ~* \.(css|js|ico|gif|png|jpe?g|svg)$) {
access_log off;
}
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = your-domain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = www.your-domain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name your-domain.com www.your-domain.com;
return 404; # managed by Certbot
}
nginx 설정이 수정 됐으므로 nginx 를 다시 실행합니다.
브라우저에서 https://your-domain.com 과 https://www.your-domain.com 이 잘 접속되는지 확인합니다.