Nginx: URL 재작성을 지원하고 ngx_http_rewrite_module 모듈을 통해 조건 판단이 있는 경우 지원하지만 else는 지원하지 않음
Jump: 한 위치에서 다른 위치로 점프, 루프는 실행까지 가능 10번 초과하면 nginx는 500 오류를 반환합니다.
PCRE 지원: Perl 호환 정규식 구문 규칙 일치
Rewrite 모듈 설정 명령: 새 변수 생성 및 값 할당
① 실행 서버 블록에서 rewriter 명령
② 위치 일치 실행
③ 선택한 위치에서 rewrite 명령 실행
사용자가 탐색한 URL을 보다 표준화되고 개발 및 제품 담당자의 요구
검색 엔진이 웹 사이트 콘텐츠를 검색하고 더 나은 사용자 경험을 제공하기 위해 회사는 동적 URL 주소를 정적 주소로 위장하여 서비스를 제공합니다
URL이 새 도메인 이름으로 변경된 후 이전 방문은 예를 들어 JD.com의 360buy.com을 방문하면 jd.com
특수 변수, 디렉터리, 클라이언트 정보 등에 따른 URL 조정과 같은 서버의 일부 비즈니스 조정이 이루어집니다.
구문 다시 쓰기
regex: 일반 일치 규칙을 나타냅니다.
replacement: 점프 후의 콘텐츠를 나타냅니다.
flag: 다시 쓰기가 지원됨을 나타냅니다. 플래그 태그
플래그 태그 설명:
last: 이 규칙의 일치가 완료된 후 아래쪽으로 계속해서 새 위치 URI 규칙을 일치시킵니다. 일반적으로 서버에서 사용되며
break: 이 규칙은 다음 이후에 종료됩니다. 일치가 완료되고 더 이상 후속 규칙과 일치하지 않습니다. 일반적으로 위치
리디렉션: 302 임시 리디렉션을 반환하고, 브라우저 주소는 점프 후 URL 주소를 표시합니다.
영구: 301 영구 리디렉션을 반환합니다. , 브라우저 주소 표시줄에는 점프 후의 URL이 표시됩니다. 주소
위치는 대략 다음 세 가지로 나눌 수 있습니다. 카테고리:
정확 일치: 위치 = / {&hellip ;}
일반 일치: 위치 / {…}
정규 일치: 위치 ~ / {…}
첫째, 완전 매칭 =
둘째, 접두어 매칭^~
두 번째, 파일 내에서 순서대로 정규 매칭~ or~*
그러면 아무런 수정 없이 접두사 일치, 즉 일반 일치
결국 가장 낮은 우선순위로 /범용 일치로 넘겨집니다
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과 비교하면 일반 우선순위가 더 높습니다.
우선순위 요약:
(위치 = 전체 경로) > (위치 ^~ 경로) > (위치 부분 시작 경로)
직접 일치 웹사이트 루트. 도메인 이름을 통해 웹사이트의 홈페이지에 액세스하는 경우가 더 많아지며, 이를 사용하면 공식 웹사이트와 같은 처리 속도가 빨라집니다.
정적 홈페이지일 수도 있고 백엔드 "응용 프로그램 서버" - PHP, Apache(응용 프로그램 서버는 아래 그림에 표시됨)로 직접 전달될 수도 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!