nginx conf 톺아보기?

Yunny.Log ·2022년 10월 12일
0

나의 외주일지

목록 보기
12/16
post-thumbnail
  • 한번 주석으로 설명을 달아보고자 했다.
  • nginx 안의 server, listen, proxy_pass~~에 관해서 알아보고 싶었어

1. 클라이언트 (리액트 정적 빌드 파일)


//server 블록은 하나의 호스트를 선언하는데 사용하며,
// http 블록 안에서만 사용할 수 있습니다.
    server {
       listen       443 ssl;
       // location 블록에는 server 블록 안에 정의되며, 
       // 특정 URL을 처리하는 방법을 정의
       server_name  도메인.kro.kr;

       ssl_certificate      C:\Certbot\live\도메인.kro.kr\fullchain.pem;
       ssl_certificate_key  C:\Certbot\live\도메인.kro.kr\privkey.pem;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;



       location / {
            root   C:\Users\Administrator\Desktop\Front\build;
            
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
    }
  • Forward Proxy 는 클라이언트가 요청하는 End Point 가 실제 서버 도메인이고 프록시는 둘 사이의 통신을 담당해준다.
  • Reverse Proxy 는 클라이언트가 요청하는 End Point 가 프록시 서버의 도메인이고 실제 서버의 정보는 알 수 없다.

2. 서버

// server 블록은 하나의 호스트를 선언하는데 사용하며, 
// http 블록 안에서만 사용할 수 있습니다.
    server {
       listen       446 ssl; //기준이 되는 포트
       server_name  도메인.kro.kr;

       ssl_certificate      C:\Certbot\live\도메인.kro.kr\fullchain.pem;
       ssl_certificate_key  C:\Certbot\live\도메인.kro.kr\privkey.pem;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;


       location / { 
       // location / 는 위에서 설정했던
       // server_name  : listen 으로 요청이 들어오면 받는다는 것
       // 즉 도메인.kro.kr:446 으로 요청 들어오면 처리한다는 것
       // 슬래쉬 (/) 뒤에 뭔가 포트를 설정했으면 
       // 해당 포트로 들어오는 요청 처리한다는 것
       
       // proxy_pass는 들어온 요청을 어디로 포워딩 해주는지 지정
               proxy_pass http://도메인.kro.kr:8180; 
               proxy_set_header Host $http_host;
               # proxy_set_header Host $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 Upgrade $http_upgrade; #소켓 연결을 위해 추가
               proxy_set_header Connection "upgrade"; #소켓 연결을 위해 추가
               proxy_http_version 1.1; #소켓 연결을 위해 추가

               proxy_read_timeout 86400s;
               proxy_send_timeout 86400s;

               }

    }

}

reference

리버스 vs forward proxy
nginx 설정 파일

0개의 댓글