Nginx에의 재 작성 (주소 재) 분석

1, 재 구문 :

  명령 구문 : 재기록 정규식 여분 [플래그];

  기본값 : 없음

  응용 프로그램 위치 : 서버, 위치, 경우

  재 작성은 그가 플래그의 끝을 표시, 정규식 (정규 표현식)에 따라 내용과 일치하도록 교체로 이동, URL 재 지정 명령을 깨닫는 것이 중요하다

  간단한 작은 예 :

1
rewrite ^/(.*) http: //www .baidu.com/ permanent;      # 匹配成功后跳转到百度,执行永久301跳转

  일반적인 정규 표현식 :

문자 기술
\ 후자는 문자 또는 특수 문자 또는 문자 문자 다시 참조로 표시된
^ 입력 문자 문자열의 시작 위치를 일치
$ 문자열의 입력 끝을 일치
* 앞의 문자 0 번 이상 일치
+ 문자열 전에 한 번 이상 일치
? 0 또는 1을 위의 문자열을 일치
. 모두에 "\ n"을 제외한 단일 문자와 일치
(무늬) 괄호 안의 패턴 매칭

 

  마지막 플래그 매개 변수를 다시 작성 :

표시 기호 설명
마지막 이 규칙의 경기 종료 후 새로운 위치 URI 일치 규칙을 계속
단절 이 규칙 경기의 종료 종료 후, 규칙과 일치하지
리디렉션 반환 (302) 임시 리디렉션
영구적 인 반환 301 영구 리디렉션

 

2, 응용 프로그램 시나리오 :

  •  URL, 모양 규범을 찾아 사용자를 조정
  • 사용자가 더 좋은 경험을 할 수 있도록 검색 엔진 사이트의 콘텐츠를 만들려면
  • 새로운 웹 사이트 도메인 이름을 교체 한 후
  • 특정 변수에 따라, 카탈로그, 클라이언트 정보 점프

3, 일반적으로 (301)로 이동을 사용했을

  우리가했던 전에이 별칭을 사용하는 방법으로 액세스 서로 다른 가상 호스트에서 동일한 자원을 해결하고, 지금 우리는이 작업을 수행 할 수있는 더 좋은 방법을 사용할 수 있으며, 그 점프로가는 길이다

  또는, 예를 들어 www.brian.com 웹 호스팅을 사용하는 구성 파일 brian.conf 수정 :

코드를 복사
[루트 @ Nginx에의 www_date] # 고양이 brian.conf 
    서버 {#는 서버 블록 점프을 추가
    (80)를 듣고;
    서버 _ brian.com;
    재기록 ^ / http://www.brian.com/$1 영구 (*.);
    }
    서버 {
        (80)를 듣고;
        서버 _ www.brian.com;
        위치 / {
            루트 HTML / 브라이언;
            index.htm으로 index.html을 인덱스;
        }
        ACCESS_LOG 로그 / brian.log 메인 GZIP 버퍼 플러시 = 128K = 5S; 
        500 502 503 504 /50x.html을 error_page;
        위치 = {/50x.html
            루트 HTML;
        }
 }
코드를 복사

   문법을 확인합니다 :

[루트 @ Nginx에의 conf] # 
[루트 @ Nginx에의 conf] # ../sbin/nginx -t
의 nginx : 구문 /opt/nginx//conf/nginx.conf 구성 파일은 괜찮습니다
의 nginx : 구성 파일 /opt/nginx//conf/nginx.conf 테스트 성공

  GR :

1
[root@Nginx conf] # ../sbin/nginx -s reload

  창 테스트 결과 :

4, 도메인 점프 :

  뿐만 아니라 우리가 같은 가상 호스트 리소스 도메인 점프를 할 수있는, 당신은 우리의 다음 방문 brian.com www.baidu.com 도메인 이름이 페이지로 이동하는 경우에 다른 가상 호스트 이름 점프, 점프를 할 수 있습니다 :

  수정 www.brian.com brian.conf 가상 호스트 설정 파일 :

코드를 복사
[루트 @ Nginx에의 www_date] # 고양이 brian.conf 
    서버 {
        (80)를 듣고;
        서버 _ brian.com;
        위치 / {
            루트 HTML / 브라이언;
            index.htm으로 index.html을 인덱스;
        }
    경우 ($ HTTP_HOST ~ * "(^. *)") {
        세트 $ 도메인 $ 1;
        ^ 다시 http://www.baidu.com 휴식 (*.)
    }
        ACCESS_LOG 로그 / brian.log 메인 GZIP 버퍼 플러시 = 128K = 5S; 
        500 502 503 504 /50x.html을 error_page;
        위치 = {/50x.html
            루트 HTML;
        }
 }
코드를 복사

  에 창 테스트 액세스 brian.com :( 이동합니다 www.baidu.com)

추천

출처www.cnblogs.com/wangshaowei/p/12374608.html