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)
댓글 남기기