Nginx + https
Nginx + https 적용해보기
1. Nginx 설치
sudo apt-get install nginx
2. nginx 서버 블록 설정
nginx 설정 파일 수정
$ sudo vi /etc/nginx/nginx.conf
http {} 블록 끝에 구문 추가
include /etc/nginx/sites-enabled/*.conf; // sites-enabled 디렉토리에서 서버 블록을 찾도록 지시
server_names_hash_bucket_size 64; // 도메인이름 분석하는데 할당되는 메모리 양
3. 서버 블록 파일 만들기
sudo vi /etc/nginx/sites-available/도메인이름(프로토콜 제외).conf
ex)sudo vi /etc/nginx/sites-available/juhyeon.shop.conf
//서버 블록에 아래 내용 입력
server {
listen 80;
server_name 도메인이름;
location / {
root /var/www/html; //vsftpd 홈디렉토리
index index.html index.htm index.nginx-debian.html;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
4. 서버 블록 파일 활성화
sudo ln -s /etc/nginx/sites-available/도메인.conf /etc/nginx/sites-enabled/도메인.conf
5. nginx 명령어 정리
nginx 재시작
$ sudo systemctl restart nginx
nginx log 확인
$ sudo ls /var/log/nginx // access.log error.log
$ sudo tail -f /var/log/nginx/access.log
로그 확인시 맨 밑줄로 이동하고 싶으면 대문자 G를 누르면 된다.
반대로 맨 위로 이동시 소문자 gg 를 누르면 된다.
6. https 적용
아래 링크를 참고해 적용하면 된다.
https://twpower.github.io/44-set-free-https-by-using-letsencrypt
위 링크에서 ssl 적용시 $ sudo certbot --nginx -d example.com -d www.example.com 부분에서 막힌다면 도메인 생성 사이트를 확인하자.
위에 www.example.com 이므로 host가 www로 된 도메인 만들었는지 체크할 것
https 까지 적용한 내 최종 코드는 아래와 같다.
upstream app {
server 52.79.227.179:3000;
#localhost:3000;
} //여기 서버 주소 여러개 입력시 로드 밸런싱이 적용된다.
#limit_req_zone $request_uri zone=MYZONE:10m rate=30r/m;
#limit_req_zone $binary_remote_addr zone=zone_one:10m rate=30r/m;
limit_req_zone $binary_remote_addr zone=zone_one:10m rate=600r/m;
server {
server_name juhyeon.shop www.juhyeon.shop;
#13.125.157.182 http://13.125.157.182;
#location /post/{
# proxy_pass http://app;
#}
location / {
# limit_req zone=MYZONE;
# root /var/www/html;
limit_req zone=zone_one burst=5;
proxy_pass http://app;
proxy_redirect off;
# index index.html index.htm index.nginx-debian.html;
# try_files $uri $uri/ =404;
}
#location ~ /.well-known {
# allow all;
#}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/juhyeon.shop/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/juhyeon.shop/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.juhyeon.shop) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = juhyeon.shop) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name juhyeon.shop www.juhyeon.shop;
return 404; # managed by Certbot
}
ref
Nginx
1. https://velog.io/@byjihye/ubuntu2
2. https://icerabbit.tistory.com/116 //location 적용 관련 부분 참고
3. https://velog.io/@kimkevin90/Nginx%EB%A1%9C-React-%EB%B0%B0%ED%8F%AC-%EB%B0%8F-express%EC%97%B0%EB%8F%99 //location 적용 관련 부분 참고
https
https://twpower.github.io/44-set-free-https-by-using-letsencrypt
추가적으로 공부할것
Nginx : proxy_pass vs proxy_redirect
Nginx : rewrite
Author And Source
이 문제에 관하여(Nginx + https), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bgg01578/Nginx-https저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)