Nginx localtion 설정 규칙 및 우선 순위

3209 단어 Nginx
머리말
     nginx 의 location 블록 은 요청 한 경로 와 각종 페이지 의 처리 상황 을 설정 합 니 다.이 글 은 주로 location 의 설정 규칙 과 우선 순 위 를 소개 합 니 다.
위치 문법
문법 규칙: location [=|~|~*|^~] /url/ { … }
location 표현 식 형식
  • ~ 정규 일치, 대소 문자 구분
  • ~ * 는 정규 일치, 대소 문자 구분 없 음
  • ^ ~ 보통 문자 가 일치 함 을 표시 합 니 다.접두사 일치 사용.일치 에 성공 하면 다른 location 과 일치 하지 않 습 니 다.
  • = 일반 문 자 를 정확하게 일치 시 킵 니 다.완전히 일치 하 는 것 이다.
  • @ "@" 은 이름 을 가 진 location 를 정의 합 니 다. 내부 방향 으로 사용 할 때 예 를 들 어 errorpage, try_files
  • !~와!대소 문자 구분 이 일치 하지 않 고 대소 문자 구분 이 일치 하지 않 습 니 다. 의 정규
  • 우선 순위 규칙
  • 등호 유형 (=) 의 우선 순위 가 가장 높다.일치 에 성공 하면 다른 일치 항목 을 찾 지 않 습 니 다
  • 접 두 사 는 보통 일치 (^ ~) 우선 순위 입 니 다.정규 표현 식 은 지원 되 지 않 습 니 다.접두사 매 칭 을 사용 합 니 다. 여러 location 이 일치 하면 표현 식 이 가장 긴 것
  • 을 사용 합 니 다.
  • 정규 표현 식 형식 (~ *) 의 우선 순위 입 니 다.일치 에 성공 하면 다른 일치 항목 을 찾 지 않 습 니 다
  • 일반적인 문자열 이 일치 합 니 다. 여러 location 이 일치 하면 표현 식 이 가장 긴 것
  • 을 사용 합 니 다.
    설명 하 다.
  • 정확 한 명중 을 먼저 판단 하고 명중 하면 즉시 결 과 를 되 돌려 주 고 분석 과정 을 끝 냅 니 다
  • 끝나 지 않 으 면 접두사 의 일반 명중 을 판단 하고 여러 개의 명중 이 있 으 면 표현 식 '최 장' 의 명중 결 과 를 사용 하여 분석 과정 을 끝 냅 니 다
  • 끝나 지 않 으 면 정규 표현 식 의 일치 성 을 계속 판단 하고 정규 표현 식 순 서 를 기준 으로 위 에서 아래로 1 개 일치 하면 결 과 를 되 돌려 주 고 분석 과정 을 끝 냅 니 다
  • 끝나 지 않 으 면 일반 명중 을 계속 합 니 다. 일반 명중 은 접두사 일반 명중 과 비슷 합 니 다. 순 서 는 상관 없습니다. location 표현 식 의 장단 에 따라 명중 결 과 를 확인 합 니 다
  •  
    예시:
    location = / {  
       #  A  
    }  
    location = /login {  
       #  B  
    }  
    location ^~ /static/ {  
       #  C  
    }  
    location ~ \.(gif|jpg|png|js|css)$ {  
       #  D  
    }  
    location ~* \.png$ {  
       #  E  
    }  
    location !~ \.xhtml$ {  
       #  F  
    }  
    location !~* \.xhtml$ {  
       #  G  
    }  
    location / {  
       #  H  
    }  
    

     
    그러면 발생 하 는 효 과 는 다음 과 같다.
  • 루트 디 렉 터 리 에 접근 /, 예 를 들 어http://localhost/ 일치 하 는 규칙 A
  • 방문http://localhost/login 일치 하 는 규칙 B 를,http://localhost/register 규칙 H
  • 와 일치 합 니 다.
  • 방문http://localhost/static/a.html 일치 하 는 규칙 C
  • 방문http://localhost/a.gif, http://localhost/b.jpg 규칙 D 와 규칙 E 가 일치 하지만 규칙 D 순서 가 우선 이 고 규칙 E 가 작 동 하지 않 습 니 다.http://localhost/static/c.png 규칙 C
  • 에 우선 일치 합 니 다.
  • 방문http://localhost/a.PNG 규칙 E 는 대소 문 자 를 구분 하지 않 기 때문에 규칙 D 와 일치 하지 않 습 니 다.
  • 방문http://localhost/a.xhtml 규칙 F 와 규칙 G 가 일치 하지 않 습 니 다.http://localhost/a.XHTML대소 문 자 를 구분 하지 않 기 때문에 규칙 G 와 일치 하지 않 습 니 다.규칙 F, 규칙 G 는 배제 법 에 속 하고 일치 하 는 규칙 에 부합 되 지만 일치 하지 않 기 때문에 실제 응용 에서 어디 에 사용 되 는 지 생각해 보 세 요.
  • 방문http://localhost/category/id/1111 마지막 으로 규칙 H 에 일치 합 니 다. 상기 규칙 이 일치 하지 않 기 때문에 이 때 는 nginx 리 트 윗 요청 이 백 엔 드 응용 서버 에 있어 야 합 니 다. 예 를 들 어 FastCGI (phop), tomcat (jsp), nginx 는 방향 프 록 시 서버 로 존재 합 니 다.

  • 현재 자주 사용 하 는 일치:
    #       ,              ,         ,     。
    #                ,          
    #        
    location = / {
        proxy_pass http://tomcat:8080/index
    }
     
    #                 ,  nginx  http      
    #        ,         ,         
    location ^~ /static/ {
        root /webroot/static/;
    }
    location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
        root /webroot/res/;
    }
     
    #           ,                
    #               ,        
    location / {
        proxy_pass http://tomcat:8080/
    }
    
    

    확장 참고:
    https://www.cnblogs.com/knowledgesea/p/5175711.html

    좋은 웹페이지 즐겨찾기