>  기사  >  운영 및 유지보수  >  Nginx의 위치 일치 및 재작성 점프 방법

Nginx의 위치 일치 및 재작성 점프 방법

WBOY
WBOY앞으로
2023-05-22 15:25:191698검색

    1. 재작성 점프 구현

    Nginx: URL 재작성을 지원하고 ngx_http_rewrite_module 모듈을 통해 조건 판단이 있는 경우 지원하지만 else는 지원하지 않음

    Jump: 한 위치에서 다른 위치로 점프, 루프는 실행까지 가능 10번 초과하면 nginx는 500 오류를 반환합니다.

    PCRE 지원: Perl 호환 정규식 구문 규칙 일치

    Rewrite 모듈 설정 명령: 새 변수 생성 및 값 할당

    2. 실행 순서 다시 작성

    ① 실행 서버 블록에서 rewriter 명령

    ② 위치 일치 실행

    ③ 선택한 위치에서 rewrite 명령 실행

    3. 점프 시나리오 다시 작성

    사용자가 탐색한 URL을 보다 표준화되고 개발 및 제품 담당자의 요구

    검색 엔진이 웹 사이트 콘텐츠를 검색하고 더 나은 사용자 경험을 제공하기 위해 회사는 동적 URL 주소를 정적 주소로 위장하여 서비스를 제공합니다

    URL이 새 도메인 이름으로 변경된 후 이전 방문은 예를 들어 JD.com의 360buy.com을 방문하면 jd.com

    특수 변수, 디렉터리, 클라이언트 정보 등에 따른 URL 조정과 같은 서버의 일부 비즈니스 조정이 이루어집니다.

    4. 문법 및 flg 태그 설명

    구문 다시 쓰기 [flag];

    regex: 일반 일치 규칙을 나타냅니다.

    replacement: 점프 후의 콘텐츠를 나타냅니다.

    flag: 다시 쓰기가 지원됨을 나타냅니다. 플래그 태그

    플래그 태그 설명:

    • last: 이 규칙의 일치가 완료된 후 아래쪽으로 계속해서 새 위치 URI 규칙을 일치시킵니다. 일반적으로 서버에서 사용되며

    • break: 이 규칙은 다음 이후에 종료됩니다. 일치가 완료되고 더 이상 후속 규칙과 일치하지 않습니다. 일반적으로 위치

    • 리디렉션: 302 임시 리디렉션을 반환하고, 브라우저 주소는 점프 후 URL 주소를 표시합니다.

    • 영구: 301 영구 리디렉션을 반환합니다. , 브라우저 주소 표시줄에는 점프 후의 URL이 표시됩니다. 주소

    5. Nginx에서 일반적으로 사용되는 정규식 기호

    Nginx의 위치 일치 및 재작성 점프 방법

    6. 위치

    1. 분류

    위치는 대략 다음 세 가지로 나눌 수 있습니다. 카테고리:

    • 정확 일치: 위치 = / {&hellip ;}

    • 일반 일치: 위치 / {…}

    • 정규 일치: 위치 ~ / ​​{…}

    2. 매칭규칙

    Nginx의 위치 일치 및 재작성 점프 방법

    3. 우선순위

    • 첫째, 완전 매칭 =

    • 둘째, 접두어 매칭^~

    • 두 번째, 파일 내에서 순서대로 정규 매칭~ or~*

    • 그러면 아무런 수정 없이 접두사 일치, 즉 일반 일치

    • 결국 가장 낮은 우선순위로 /범용 일치로 넘겨집니다

    4. 예시

    localtion = / {}

    =은 완전 일치입니다. /, 호스트 이름 뒤에 문자열을 배치할 수 없습니다(예: / 및 /xcf 액세스). 그러면 /는 일치하지만 /xcf는

    location / {}

    모든 주소가 /로 시작하므로 이 규칙이 일치합니다. / 및 /data 액세스와 같은 모든 요청은 / 일치하고, /data도 일치합니다

    하지만 정규 표현식이 뒤에 오면 가장 긴 문자열부터 먼저 일치합니다(가장 긴 일치)

    location /documents/ {}

    /documents/로 시작하는 주소를 일치시킨 후에는 계속해서 다른 위치를 검색해야 합니다.

    location /documents/abc {}

    일치한 후에는 /documents/abc로 시작하는 모든 주소와 일치합니다. 위치

    다른 위치 뒤에 있는 정규 표현식만 일치하지 않습니다. 이

    위치 ^~ /images/ {}

    는 /images/로 시작하는 모든 주소와 일치합니다. 일치 후에는 일반 규칙 검색을 중지하고 이

    위치를 사용하세요. * .( gif|jpg|jpeg)$ {}

    는 gif, jpg, jpeg

    로 끝나는 모든 요청과 일치합니다. 그러나 /images/에서 요청된 모든 이미지는 ^~가 우선하기 때문에 ^~ /images/ 위치로 처리됩니다. 레벨이 높아서 이 일반 규칙에 도달할 수 없습니다.

    location /images/abc {}

    가장 긴 문자가 우선 순위가 가장 낮은 /images/abc와 일치하므로 다른 위치를 계속 검색하면 찾을 수 있습니다. 그 ^~ 및 ~ 존재

    location ~ /images/abc {}

    /images/abc로 시작하는 항목과 일치하며 두 번째 우선순위는 location ^~ /images가 제거된 경우에만 사용됩니다

    location /images /abc/1.html {}

    /images/abc/1.html 파일을 일치시킵니다. 일반 ~ /images/abc/1.html과 비교하면 일반 우선순위가 더 높습니다.

    우선순위 요약:

    (위치 = 전체 경로) > (위치 ^~ 경로) > (위치 부분 시작 경로)

    1. 첫 번째 필수 규칙 :

    직접 일치 웹사이트 루트. 도메인 이름을 통해 웹사이트의 홈페이지에 액세스하는 경우가 더 많아지며, 이를 사용하면 공식 웹사이트와 같은 처리 속도가 빨라집니다.

    정적 홈페이지일 수도 있고 백엔드 "응용 프로그램 서버" - PHP, Apache(응용 프로그램 서버는 아래 그림에 표시됨)로 직접 전달될 수도 있습니다.

    Nginx의 위치 일치 및 재작성 점프 방법

    location / {
        root
        html;
        index
        index.html index.html;
    }

    ②두 번째 필수 규칙:

    http 서버로서 nginx의 강점인 정적 파일 요청 처리(①정적 요청 처리 능력 ②높은 동시 처리 능력 ③낮은 자원 소비)

    디렉토리 일치 또는 접미사 일치 두 가지 구성 모드가 있으며 하나를 선택하거나

    location ^~ /static/ {
        root /webroot/static/;
    }
     
    location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {
        root /webroot/res/ ;
    }
    와 함께 사용합니다.

    3 세 번째 필수 규칙:

    은 .php 및 .jsp 접미사가 포함된 동적 요청을 백엔드 응용 프로그램 서버에 전달하는 데 사용되는 것과 같은 일반 규칙입니다.

    비정적 파일 요청은 기본적으로 동적 요청입니다(점프/ 역방향 프록시)

    upstream tomcat_server {
    		192.168.126.12:80
    		192.168.126.23:80
    }
    location / {
        proxy_ pass http://tomcat_server;

    요약:

    1. 재작성과 위치 비교

    동일점: 둘 다 점프를 구현합니다

    차이: 재작성은 동일한 도메인 이름 내의 리소스를 얻기 위해 경로를 변경합니다

    위치는 액세스 또는 역방향 프록시를 제어합니다.

    2.rewrite는 해당 위치에 기록되고 실행 순서는

    • 서버 블록에서 rewrite 명령을 실행

    • 위치 일치 실행

    • 선택한 위치에서 다시 쓰기 명령을 실행합니다

    3. 위치 우선순위는 어떻게 정해져 있나요?

    특정 파일 일치

    (위치 ^~ 전체 경로) > (위치 ~* 전체 경로) > (위치 /)

    파일에 액세스하기 위한 디렉토리 일치

    (위치 ^~ 디렉토리) > (위치 ~* 디렉토리) > (위치 /)

    4.

    정규 표현식: 목적은

    파일을 최대한 정확하게 일치시키는 것입니다.

    파일— 정확성을 위해

    🎜디렉토리 - 가능한 한 정확하게 일치하도록 노력하세요. 더 많은 경우에는 대소문자를 구분합니다. 정확하고 우선순위가 더 높습니다🎜

    위 내용은 Nginx의 위치 일치 및 재작성 점프 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제