Nginx 에서 location 모듈 의 상세 설정 (예시 포함)

2876 단어
기록 하 다
그동안 Nginx location 모듈 을 설정 하면 서 bug 를 만들어 한동안 괴 롭 혔 습 니 다.나중에 인터넷 에서 도 관련 자 료 를 찾 아 보 니 혼 란 스 러 웠 다.주말 에 시간 이 있 으 면 location 모듈 의 설정 을 잘 정리 하고 자신의 직접 실험 과 결합 하여 location 모듈 의 설정 을 정리 했다.
위치 모듈 설정
일치 하 는 특성 에 따라 다음 과 같은 몇 부분 으로 나 눌 수 있 습 니 다 (우선 순위 순 으로)
최고 우선 순위 (=) 두 번 째 우선 순위 (^ ~) 세 번 째 우선 순위 (순서대로 매 칭 ~, ~ *) 네 번 째 우선 순위 (/)
1. 매 칭 즉시 정지
=: 정확하게 일치 하거나 일치 하거나 일치 하지 않 는 다 는 뜻 입 니 다.일치 하면 이 위치 블록 에 들 어가 서 다른 것 은 보지 않 습 니 다. ^ ~:우선 일치 함 을 표시 합 니 다. 위 에서 아래로 이 ^ ~ 뒤의 URL 이 일치 하면 이 location 블록 에 들 어가 서 다른 것 은 보지 않 습 니 다.
2. 순서대로 매 칭
~: 대소 문 자 를 구분 하 는 정규 일치 라 는 뜻 입 니 다. 위 에서 아래로 URL 이 일치 하면 이 location 블록 을 더 이상 찾 지 않 습 니 다. ~ *:대소 문 자 를 구분 하지 않 는 정규 일치 입 니 다. 위 에서 아래로 URL 이 일치 하면 이 location 블록 을 더 이상 찾 지 않 습 니 다.
3. 공통 일치
/: 모든 요청 이 일치 한 다 는 뜻 입 니 다.
location 사용 예
#   http://ip+port/images/1.p
#       '= /images/1.p',  =       
location = /images/1.p {
    default_type 'text/plain';
    echo '= /images/1.p';
}
location ^~ /images/1.p {
    default_type 'text/plain';
    echo ' /images/1.p';
}
#   http://ip+port/images/1.p
#        '^~ /images/1.p',  ^~            ,         
location ^~ /images/ {
    default_type 'text/plain';
    echo '^~ /images/1.p';
}
location ~ /images/1.p {
    default_type 'text/plain';
    echo '~ /images/1.p';
}
#   http://ip+port/images/1.pxyzxyz
#        '~ /images/',           ,             
location ~ /images/ {
    default_type 'text/plain';
    echo '~ /images/';
}
location ~ /images/1 {
    default_type 'text/plain';
    echo '~ /images/1';
}
#   http://ip+port/images/    '/',          URL,     /  
#   http://ip+port/images/1xyzxyz    '~ /images/1',           
location / {
    default_type 'text/plain';
    echo '/';
}
location ~ /images/1 {
    default_type 'text/plain';
    echo '~ /images/1';
}
#   http://ip+port/images/   '/images/'
#   http://ip+port/images/1/ab   '/images/'
#   http://ip+port/images/1/abc   '/images/1/abc'        location ,         ,          ,      。    ,      。
location /images/ {
    default_type 'text/plain';
    echo '/images/';
}
location /images/1/abc {
    default_type 'text/plain';
    echo '/images/1/abc';
}

주의 사항
#    “=”         ,         。   'http://ip+port/' ,         304&404
#     Nginx          ,       'http://ip+port/index.html',      304
#   Nginx   'http://ip+port/index.html'    ,    location    ,   404 
location = / {
    default_type 'text/plain';
    index index.html index.htm;
    root /web/;
}

좋은 웹페이지 즐겨찾기