Nginx + https
Nginx + https 적용해보기
1. Nginx 설치
sudo apt-get install nginx2. nginx 서버 블록 설정
nginx 설정 파일 수정
$ sudo vi /etc/nginx/nginx.confhttp {} 블록 끝에 구문 추가
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/도메인.conf5. nginx 명령어 정리
nginx 재시작
$ sudo systemctl restart nginxnginx 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.)