Nginx 전역 변수 상세 설명 및 Rewrite 규칙 상세 설명

nginx 는 많은 전역 변 수 를 내장 하고 쓸 때마다 의문 이 있 습 니 다. 대부분 다른 사람의 쓰기 방법 을 참조 하여 일부 매개 변수 에 대해 잘 모 릅 니 다.시간 을 들 여 baidu, google 은 일부 매개 변수 에 대한 상세 한 설명 과 Rewrite 재 작성 방법 을 정리 했다. URL: blog. sakmon. com / 2013 / 81. html? a = 1 & b = 2
$remote_addr		//     ip
$binary_remote_addr	//   ip(   )
$remote_port		//   port, :50472
$remote_user		//    Auth Basic Module      
$host			//       ,        , :blog.sakmon.com
$request		//      , :GET ?a=1&b=2 HTTP/1.1
$request_filename	//           , root alias URI request    , :/2013/81.html
$status			//        , :200
$body_bytes_sent        //       body     。      ,         , :40
$content_length	       //       “Content_Length”  
$content_type	       //       “Content_Type”  
$http_referer	       //     
$http_user_agent      //    agent  , :Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
$args		     // $query_string       URL   (GET), a=1&b=2
$document_uri	     // $uri              URI,       ( $args)  :/2013/81.html
$document_root	     //             
$hostname	     // :centos53.localdomain
$http_cookie	    //   cookie  
$cookie_COOKIE	    //cookie COOKIE    
$is_args	//   $args  ,      ”?”,    ”",  , ?
$limit_rate	//            ,0     
$query_string	    //  $args       URL   (GET), a=1&b=2
$request_body	   //   POST       
$request_body_file	//               
$request_method	      //        ,   GET POST, :GET
$request_uri	      //         URI,      , :/2013/81.html?a=1&b=2
$scheme		       //HTTP  ( http,https), :http
$uri			//          URI,       ( $args)  :/2013/81.html
$request_completion	//      ,   OK.                         ,  (Empty), :OK
$server_protocol	//       ,   HTTP/1.0 HTTP/1.1, :HTTP/1.1
$server_addr		//   IP  ,                 
$server_name		//     , :blog.sakmon.com
$server_port		//           , :80

Rewrite 정규 관련 명령 상세 설명: nginx 의 rewrite 는 apache 의 rewriterule (대부분의 경우 기 존의 apache 의 rewrite 규칙 에 따옴표 를 추가 하면 직접 사용 할 수 있 습 니 다) 에 해당 합 니 다. server, location, IF 조건 판단 블록 에 사용 할 수 있 습 니 다. 명령 형식 은 다음 과 같 습 니 다. rewrite regex replacement flag rewrite 정규 표현 식 으로 목표 flag 표 시 를 교체 할 수 있 습 니 다.
정규 표현 식 이 일치 합 니 다. 다음 과 같은 몇 가지 특수 표기 법 이 있 습 니 다.
  • ~ 대소 문자 구분 일치
  • ~ * 대소 문자 구분 없 이 일치
  • !~와!각각 대소 문자 가 일치 하지 않 고 대소 문자 가 일치 하지 않 음
  • 을 구분 합 니 다.
    파일 및 디 렉 터 리 일치 판단 은 다음 과 같은 몇 가지 방법 이 있 습 니 다.
  • - f 와! -f 파일 존재 여 부 를 판단 하 는 데 사용
  • - d 와! -디 렉 터 리 존재 여 부 를 판단 하 는 데 사용
  • - e 와! -e 파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용
  • - x 와! -x 파일 의 실행 여 부 를 판단 하 는 데 사용
  • flag 표 시 는 다음 과 같은 몇 가지 형식 을 사용 할 수 있 습 니 다.
  • last - 기본적으로 이 깃발 을 사용 합 니 다.
  • break - Rewirte 중지, 계속 일치 하지 않 음
  • redirect - 임시 재 설정 HTTP 상태 302
  • 되 돌리 기
  • permanent - 영구적 으로 방향 을 바 꾸 는 HTTP 상태 301
  • last 와 break 를 사용 하여 URI 재 작성 을 실현 합 니 다. 브 라 우 저 주소 표시 줄 은 변 하지 않 습 니 다.그리고 이들 은 미세한 차이 가 있 기 때문에 alias 명령 을 사용 하려 면 last 로 표시 해 야 합 니 다.proxy 사용pass 명령 시 break 표 시 를 사용 해 야 합 니 다.Last 표 시 는 이 rewrite 규칙 이 실 행 된 후 서버 {...} 탭 에 다시 요청 합 니 다. break 표 시 는 이 규칙 이 일치 한 후에 일치 하지 않 습 니 다.
    Nginx Rewrite 는 어떻게 301 번 으로 전환 합 니까? 예 를 들 어 www. xxx. com 을 xxx. com 으로 전환 합 니 다.
    server {
    	listen       80;
    	server_name   www.xxx.com  xxx.com;
    	if ($host != 'www.xxx.com' ) { 
    		rewrite ^/(.*)$ http://www.xxx.com/$1 permanent; 
    	} 
    }

    파일 형식 에 따라 만 료 시간 을 설정 합 니 다.
    location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ {
    if (-f $request_filename) {
       expires    1h;
       break;
    }
    }
    본 고 는 지속 적 으로 업데이트 되 고 있 습 니 다.

    좋은 웹페이지 즐겨찾기