웹의 기본 요청방식(통신방식)은 http이기 때문에, 사용자들의 http요청을 https로 redirect시킬 필요가 있다.
/etc/nginx/sites-available/defulat 파일에서 설정을 해보도록 하자 (본 파일은 nginx.conf에 include됨)
server 블록을 하나 만들어 http요청을 모두 https로 redirect시킬 수 있다.
server {
server_name mydomain;
if ($host = mydomain) {
return 301 https://mydomain
}
return 404;
}
2. 내 프로젝트 붙이기
이제 막, 서버를 개설중인 것이라면 내 프로젝트를 nginx/apache서버에 붙여줄 필요가 있다.
어떻게 만들어졌냐에 따라 크게 달라지지만
먼저, html로 만든 간단한 웹사이트의 경우이다.
server {
client_max_body_size 100M; // 너무 큰 요청은 곤란하다..
server_name mydomain;
root /var/www/html; // 내 프로젝트 위치를 잡아주면됨. 특히, 그중에서도 index.html의 위치
index index.html // 위에서 말한 index.html 파일명을 명시
// https 설정!!
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain/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
}
다음으로, react로 만든 프로젝트이다.
...
server {
server_name mydomain;
root /home/ubuntu/myproject/build; // 내 프로젝트 위치를 잡아주면됨. 특히, 그중에서도 index.html의 위치
index index.html // 위에서 말한 index.html 파일명을 명시
location / {
try_files $uri $uri/ /index.html;
}
location ~* \.(?:manifest|appcache|html?|xml|json|service-worker\.js)$ {
expires -1;
}
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
}
// https 설정!!
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain/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
}