python 및 머신러닝 교육, 슬로우캠퍼스



nginx 설정 설명


server {
    listen  80;
    server_name demo.abc.com;
    charset utf-8;

    access_log /home/ubuntu/app/log/nginx/demo_abc_com_access.log;
    error_log /home/ubuntu/app/log/nginx/demo_abc_com_error.log;

    location / {
            proxy_pass                          http://127.0.0.1:8000;
            proxy_set_header X-Forwarded-Host   $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    }
}



location block의 모습

location optional_modifier location_match {

    . . .

}

 

location을 match할때는 다음 순서로 이루어진다.

  1. URL의 prefix가 일치하는지 먼저 검사하여, 일치하는 것이 발견되면 기억해 놓고, 다음 location match를 수행한다. 즉 멈추지 않는다.
  2. regular expression과 일치하는 것이 있는 검사한다.
  3. 최종적으로 일치하는 regular expression이 있으면 그것을 선택하고, 없으면 1번에서 발견한 prefix 일치하였던 것을 리턴한다.
  4. prefix match 중에 '=', '^~' 로 수식된 것에서 prefix 일치가 발견되면 regular expression 비교 수행하지 않고 바로 리턴한다. (1번의 예외상황)

 


location block에서 optional_modifier 의미

  • = 는 exact match를 의미.  RE 진행하지 않음
  • / 및 /abc 는 prefix를 의미 
  • ~는 regular expression(대소문자 구분함)을 의미.  ~*는 대소문자 구분없는 RE(regular expression)
  • ^~는 match된 경우에 RE 진행하지 않음 이라는 의미.


location = / {    
    [ configuration A ]
}

location / {
    [ configuration B ]
}

location /documents/ {
    [ configuration C ]
}

location ^~ /images/ {
    [ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}

nginx 설정

 

/etc/nginx/sites-available 아래에 파일을 생성하고,  

/etc/nginx/sites-enabled 에서 링크를 연결한다 (ln -s /etc/nginx/sites-available/xyz . ) 


참고 - https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms



WRITTEN BY
manager@
Data Analysis, Text/Knowledge Mining, Python, Cloud Computing, Platform

,