sites-available/ 에 sample.kr 도메인명의 파일을 을 생성한다.
sites-available/sample.kr
# 백엔드 연결 (Tomcat) upstream tomcat { ip_hash; server 127.0.0.1:8080; } # HTTPS 설정 server { server_name sample.kr www.sample.kr; client_max_body_size 50M; # 위험 확장자 요청 차단 (웹쉘 업로드 방지) location ~* \.(php|jsp|exe|sh|bat|pl|cgi)$ { deny all; return 403; } # 웹폰트 CORS 허용 location ~* \.(eot|ttf|woff|woff2)$ { add_header Access-Control-Allow-Origin *; } # 모든 요청을 백엔드로 프록시 location / { 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; proxy_pass http://tomcat; proxy_redirect off; charset utf-8; } }
심볼링 링크
sudo ln -s /etc/nginx/sites-available/sample.kr /etc/nginx/sites-enabled/
✅ 설정 적용 순서
설정 테스트:
sudo nginx -t
certbot 적용
https://certbot.eff.org/instructions?ws=nginx&os=snap
certbot 를 적용하면 자동으로 다음과 같이 변경 처리 된다.
# 백엔드 연결 (Tomcat) upstream tomcat { ip_hash; server 127.0.0.1:8080; } # HTTPS 설정 server { server_name sample.kr www.sample.kr; client_max_body_size 50M; # 위험 확장자 요청 차단 (웹쉘 업로드 방지) location ~* \.(php|jsp|exe|sh|bat|pl|cgi)$ { deny all; return 403; } # 웹폰트 CORS 허용 location ~* \.(eot|ttf|woff|woff2)$ { add_header Access-Control-Allow-Origin *; } # 모든 요청을 백엔드로 프록시 location / { 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; proxy_pass http://tomcat; proxy_redirect off; charset utf-8; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/sample.kr/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/sample.kr/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 = www.sample.kr) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = sample.kr) { return 301 https://$host$request_uri; } # managed by Certbot server_name sample.kr www.sample.kr; listen 80; return 404; # managed by Certbot }
댓글 ( 0)
댓글 남기기