NGINX 구성요소(재작성)

1. 위치 매칭 규칙 및 우선순위 (*)

URI: 파일, 사진, 비디오 등과 같은 추상적이거나 물리적인 리소스를 식별하는 데 사용되는 문자열 식별자인 URL(Uniform Resource Identifier)입니다.

nginx의 URI는 다음과 일치합니다: URL "/" 뒤의 경로: ……… /images/a.jpg

 위치는 URI와 일치하는 데 사용됩니다.

매칭 방법

매칭 방법
1. 정확한 일치: 위치 = / {……}
2. 정기 매칭: 위치 ~ / ​​{…
3. 일반 매칭: 위치 / {……}

일치 규칙

일치 규칙:
= 정확히 일치, 정확히 일치, 실수하면 안 됨, 정확히 일치해야 함
^~ 일반 문자 일치, 접두사 일치
$~ 경기 종료
~         대소문자 구분 일치
~* 대소문자를 구분하지 않는 일치
!~ 대소문자 구분 일치 및 논리적 부정
!~*

대소문자를 구분하지 않는 부정

위치 매칭의 원칙: 정확할수록 매칭이 많아지며, 동시에 우선순위도 높아집니다.

요약: 일치 우선순위 --> 정확할수록 우선순위가 높아집니다.

위치의 우선순위

위치 = : 정확히 일치  

위치 ^~ : 접두사 일치

위치 ~* : 정규 경기

위치 /xxx/ : 일반 일치에 대한 정확한 일치

위치 / : 일반 경기

참고: 일치가 성공하면 앞으로는 더 이상 일치하지 않습니다.

직장에서의 위치 매칭 규칙

1. 첫 번째 필수 규칙

위치 = / { }

이유: 루트 웹사이트와 직접 일치합니다. 가장 일반적으로 사용되는 웹사이트는 도메인 이름을 통해 홈페이지에 직접 접속하는 방식으로, 직접 일치검색을 이용하면 처리 속도가 빨라집니다. 일반적으로 홈페이지는 완전검색 방식으로 처리됩니다.

2. 두 번째 규칙

위치 ^~ /정적/ { }

정적 파일에 대한 요청 처리, 디렉터리 일치(정적은 사용자 지정)

삼,

위치 ~* \.(gif | jpg | png | CSS)

그림을 일치시키십시오. 그러나 접미사 유형을 지정하기 위해 다시 쓰기를 사용하는 경우 위치 정의에서 이를 제거해야 합니다. 그렇지 않으면 무한 루프에 빠지게 됩니다.

4. 일반 규칙

위치 / {

        Proxy_pass ————프록시, 역방향 프록시를 지정하고 php.jsp 요청과 같은 동적 요청을 전달하고 백엔드로 보냅니다.

}

다시 쓰기 다시 쓰기, 리디렉션

rewrite는 nginx 전역 변수 또는 자체적으로 설정된 변수를 정규식과 결합한 변수 및 플래그를 사용하여 URL 리디렉션을 달성합니다.

default_type 텍스트/일반;

다른 곳에 표시되지 않는 경우(content_type의 헤더 필드, 기본 응답은 text/plain plain text 형식임을 나타냅니다)

text/html : 기본 응답 유형(페이지)

text/plain : .txt 파일과 유사한 일반 텍스트 형식

text/css : CSS 스타일 유형: CSS

텍스트/자바스크립트: 자바스크립트, .js. 프런트엔드 파일은 iava가 구문 분석한 프로그램 파일로 이해될 수도 있습니다.

실행 순서 다시 쓰기

1. 서비스 모듈에서 다시 쓰기를 실행합니다.

2. 해당 위치에서 매칭을 실행합니다.

3. 해당 위치에 다시 쓰기가 있으면 계속 실행됩니다.

참고: 계속해서 다시 작성하면 루프에서 10번만 실행되며 10번 이후에는 오류가 보고되고 반환 상태 코드는 500입니다.

다시 쓰기의 구문

<regex(일반)> <replacement> [플래그(플래그 비트)] 다시 쓰기

프로세스:

재작성: 리디렉션 시작

정규식: 일반 일치 규칙

replacement: 점프 후의 콘텐츠, 리디렉션될 URL을 나타냅니다.

플래그: 플래그 비트

        네 가지 플래그가 있습니다:

        영구 : 영구 리디렉션, 반환 코드 301 - URL을 영구적으로 변경하면 검색 엔진이 해당 가중치와 순위를 새 URL로 이전합니다.

        리디렉션 : 임시 리디렉션, 반환 코드: 302 - 단기 변경(사이트 유지 관리, 업그레이드, 업데이트)의 경우 검색, 가중치 및 순위가 이전되지 않습니다.

                반환 코드: 304는 로컬 캐시를 나타냅니다.

        break : 리디렉션되지만 원래 URL은 변경되지 않으며 콘텐츠는 시스템 처리에 따라 리디렉션된 콘텐츠를 표시하며 한 번만 요청되고 현재 일치에서 즉시 점프하고 즉시 종료됩니다.

        last : 이 항목의 일치가 완료된 후 아래쪽으로 계속 일치함을 나타냅니다. 마지막이 있는 한 계속 일치하므로 무한 루프를 방지하려면 구성에 주의해야 합니다.

도메인 이름을 기반으로 리디렉션 구성

먼저 수정할 nginx 구성 파일을 입력하세요.

vim /usr/local/nginx/conf/nginx.conf

 server {
        listen       80;
        server_name  www.zheng.cc;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            if ($host = 'www.zheng.cc') {
            rewrite ^/(.*)$ http://www.bai.com/$1 permanent;
            }
            root   html;
            index  index.html index.htm;
        }
}

로컬 호스트 파일에 구성된 주소를 씁니다.

echo "20.0.0.40 www.zheng.cc www.bai.com" >> /etc/hosts

nginx 서비스 다시 시작

systemctl restart nginx

테스트: 구성된 주소 www.zheng.cc를 입력하고 Enter를 누릅니다.

 구성된 www.bai.com으로 이동합니다.

추천

출처blog.csdn.net/ZZZ_CCC01/article/details/132165466