Nginx 경로 일치 규칙

2908 단어 수송 하 다.
Nginx 경로 일치 기호
  • = 정확하게 일치 함 을 나타 낸다
  • ^ ~ uri 는 일반적인 문자열 로 시작 합 니 다. 대부분 url 경 로 를 일치 시 키 는 경우 가 많 습 니 다. nginx 는 url 에 인 코딩 을 하지 않 기 때문에 / static / 20% / aa 로 요청 합 니 다. 규칙 ^ ~ / static / / aa 에 일치 할 수 있 습 니 다 (빈 칸 주의).
  • ~ 정규 일치 (대소 문자 구분)
  • ~ * 정규 일치 (대소 문자 구분 없 음)
  • !~ 대소 문자 구분 이 일치 하지 않 음
  • !~* 대소 문자 구분 없 음 일치 하지 않 음
  • / 모든 요청 이 일치 합 니 다
  • location [=|~|~*|^~] /uri/ { }
    

    기호 우선 순위
    우선 일치 =, 그 다음 일치 ^ ~, 그 다음은 파일 의 순서 에 따라 정규 일치, 마지막 으로 전달 / 통용 일치.일치 가 성공 하면 일치 하지 않 고 현재 일치 하 는 규칙 에 따라 요청 을 처리 합 니 다.
    예시
    location  = / {
      #      / ,             
      [    A ] 
    }
    
    location  / {
      #           /   ,              
      #                
      [    B ] 
    }
    
    location /documents/ {
      #       /documents/      ,      ,        
      #                 ,          
      [    C ] 
    }
    
    location ~ /documents/Abc {
      #       /documents/      ,      ,        
      #                 ,          
      [    D ] 
    }
    
    location ^~ /images/ {
      #       /images/      ,      ,        ,     。
      [    E ] 
    }
    
    location ~* \.(gif|jpg|jpeg)$ {
      #       gif,jpg jpeg      
      #   ,     /images/        [   E]   ,   ^~      
      [    F ] 
    }
    
    location /images/ {
      #       /images/,    ,    ^~   
      [    G ] 
    }
    
    location /images/abc {
      #         /images/abc,    ,    ^~   
      [    H ] 
    }
    
    location ~ /images/abc/ {
      #      [   E]    :      [   H]      ,      ,        ,  
      [    I ] 
    }
    
    

    기타 간단 한 예시
    #             
    location ~(MP_verify_)*\.(txt)$ {
        root   /usr/share/nginx/file;
    }
    

    일치 하 는 MPverify_****.txt 파일, 중간 임의의 문자, 그리고 / usr / share / nginx / file 디 렉 터 리 에서 해당 하 는 파일 을 찾 습 니 다.
    #         
    location ^~ /static/ {
        root   /data/product/static;
        index  index.html index.htm;
    }
    

    / static 시작 경로 와 일치 하 며, / data / product / static 에서 대응 하 는 파일 을 찾 습 니 다.
    #       
    location ~* \.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {  
        root /data/product/static/;  
    }
    

    proxy 설정pass 시 경로 연결 규칙
    nginx 에 proxy 설정pass 시 ^ ~ 일치 하 는 경로 라면 proxypass 후의 url 마지막 /
  • 절대적 인 루트 경로 에 해당 하면 nginx 는 location 에 일치 하 는 경로 부분 을 대리 하지 않 습 니 다.
  • 없 으 면 일치 하 는 경로 부분 도 대리 로 보 냅 니 다
  • server {
        listen 80;
        server_name test.huangjian.com;
        
    	location ^~ /bpm {
    	    proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP  $remote_addr;
    		proxy_pass http://127.0.0.1:8081/;
    	}
    }
    

    주소 추가 / 요청http://test.huangjian.com/bpm/index전달 하 다http://127.0.0.1:8081/index
    server {
        listen 80;
        server_name test.huangjian.com;
        
    	location ^~ /bpm {
    	    proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP  $remote_addr;
    		proxy_pass http://127.0.0.1:8081;
    	}
    }
    

    추가 / 요청 주소http://test.huangjian/bpm/index전달 하 다http://127.0.0.1:8081/bpm/index

    좋은 웹페이지 즐겨찾기