Nginx 에서 location 일치 규칙 및 함정

1908 단어 nginxlocation
위치 상용 일치
  • =: 정확 한 일치
  • ~: 정규 일치
  • ~ *: 정규 일치, 대소 문자 구분 없 음
  • ^ ~: 보통 문자 가 일치 합 니 다. ^ ~ 의 미 는 명중 하면 정규 매 칭 을 하지 않 는 다 는 것 입 니 다
  • 앞 에 수식 이 없습니다. 일반 문자 일치
  • 위치 일치 순서
  • 정확 한 일치
  • 일반 매 칭
  • 정규 가 일치 합 니 다. 여 기 를 보면 의문 이 있 을 수 있 습 니 다. 기 존의 인지 와 충돌 할 수 있 습 니 다. 괜 찮 습 니 다. 계속 보 세 요.

  • 일치 규칙
  • 우선 정확 한 매 칭 을 하고 매 칭 이 완료 되면 매 칭 을 중지 합 니 다
  • 최대 일반 매 칭 을 진행 합 니 다. 일치 하면:
  • 접 두 사 를 붙 였 다 면 ^ ~ 일치 하지 않 습 니 다
  • 일반 매 칭 이 라면 3 단계
  • 를 계속 진행 합 니 다.
  • 정규 매 칭 을 하고 일반 매 칭 시 최대 길이 매 칭 원칙 에 따라 야 한다.그리고 정규 가 일치 할 때 한 번 만 일치 하면 후속 매 칭 을 중단 합 니 다.따라서 여기 서 일반 문자 매 칭 ^~ 수정자 매 칭 이 없 으 면 정규 매 칭 을 계속 실행 합 니 다. 정규 매 칭 이 있 으 면 정규 매 칭 은 일반 매 칭 을 덮어 씁 니 다. 그래서 이른바 입 니 다.

  • 매 칭 함정
    1. 예 를 들 어 다음 설정 이 있 습 니 다.
        location = / {
            root /var/html;
            index  index.html;
        }
    
        location / {
            root /var1/html;
            index  index.html;
        }

    접근 http://localhost/ 할 때 첫 번 째 정확 한 일치 가 먼저 일치 합 니 다. / 디 렉 터 리 를 표시 하기 때문에 nginx 는 요청 을 다시 http://localhost/index.html 로 돌 렸 습 니 다. 이때 첫 번 째 일치 가 성공 하지 못 해 두 번 째 location 에 일치 합 니 다.
    2. 그러나 다음 설정:
            location = /acom {
                root   html;
                index  index.html index.htm;
            }
    
            location / {
                    root html;
                    index index.html;
            }

    방문 http://localhost/acom 할 때 첫 번 째 일치 하 는 결과 의 index. html 를 되 돌려 줍 니 다.이것 은 실험 결과 이 므 로 구체 적 인 원인 은 계속 탐구 해 야 한다.

    좋은 웹페이지 즐겨찾기