Nginx 의 위치 소개

4395 단어 Nginx
Nginx 의 위치 소개
문법 규칙:
       location [=|~|~*|^~] /uri/ { … }
=       처음
^~        시작 은 uri 가 일반적인 문자열 로 시작 하여 url 경로 와 일치 하 는 것 으로 이해 하면 됩 니 다.nginx 는 url 에 인 코딩 을 하지 않 기 때문에 / static / 20% / aa 로 요청 합 니 다. 규칙 ^ ~ / static / / aa      일치 합 니 다.
~      첫머리 는 대소 문 자 를 구분 하 는 정규 일치 를 나타 낸다
~*       대소 문 자 를 구분 하지 않 는 정규 일치
!~와!     대소 문자 의 일치 하지 않 음 과 대소 문자 의 일치 하지 않 음 을 구분 하지 않 는 정규 입 니 다.
/ 공통 적 으로 일치 합 니 다. 모든 요청 이 일치 합 니 다.
여러 location 설정 의 경우 일치 하 는 순 서 는 다음 과 같 습 니 다. 
우선 일치 =, 그 다음 일치 ^ ~, 그 다음은 파일 의 순서 에 따라 정규 일치, 마지막 으로 전달 / 통용 일치.일치 가 성공 하면 일치 하지 않 고 현재 일치 하 는 규칙 에 따라 요청 을 처리 합 니 다.
예, 다음 과 같은 일치 규칙 이 있 습 니 다.
location = / {

   #  A

}

location = /login {

   #  B

}

location ^~ /static/ {

   #  C

}

location ~ \.(gif|jpg|png|js|css)$ {

   #  D

}

location ~* \.png$ {

   #  E

}

location !~ \.xhtml$ {

   #  F

}

location !~* \.xhtml$ {

   #  G

}

location / {

   #  H

}

그러면 발생 하 는 효 과 는 다음 과 같다.
루트 디 렉 터 리 /, 예 를 들 어http://localhost/ 일치 하 는 규칙 A
방문 하 다. http://localhost/login 일치 하 는 규칙 B 를,
http://localhost/register 일치 하 는 규칙 H
방문 하 다. http://localhost/static/a.html 일치 하 는 규칙 C
방문 하 다. http://localhost/a.gif, http://localhost/b.jpg 규칙 D 와 규칙 E 가 일치 하지만 규칙 D 순서 가 우선 이 고 규칙 E 가 작 동 하지 않 습 니 다.
그리고 http://localhost/static/c.png 규칙 C 에 우선 일치
방문 하 다. http://localhost/a.PNG 규칙 E 는 대소 문 자 를 구분 하지 않 기 때문에 규칙 D 와 일치 하지 않 습 니 다.
방문 하 다. http://localhost/a.xhtml 규칙 F 와 규칙 G 가 일치 하지 않 습 니 다.http://localhost/a.XHTML대소 문 자 를 구분 하지 않 기 때문에 규칙 G 와 일치 하지 않 습 니 다.규칙 F, 규칙 G 는 배제 법 에 속 하고 일치 하 는 규칙 에 부합 되 지만 일치 하지 않 기 때문에 실제 응용 에서 어디 에 사용 되 는 지 생각해 보 세 요.
방문 하 다. http://localhost/category/id/1111 마지막 으로 규칙 H 에 일치 합 니 다. 상기 규칙 이 일치 하지 않 기 때문에 이 때 는 nginx 리 트 윗 요청 이 백 엔 드 응용 서버 에 있어 야 합 니 다. 예 를 들 어 FastCGI (phop), tomcat (jsp), nginx 는 방향 프 록 시 서버 로 존재 합 니 다.
그래서 실제 사용 에서 개인 은 적어도 세 개의 일치 규칙 정의 가 있다 고 생각 합 니 다. 다음 과 같 습 니 다.
\ # 사이트 루트 와 직접 일치 합 니 다. 도 메 인 이름 으로 사이트 홈 페이지 를 방문 하 는 것 이 빈번 합 니 다. 이 를 사용 하면 처리 가 빨 라 집 니 다. 홈 페이지 는 다음 과 같 습 니 다.
\ # 여 기 는 백 엔 드 애플 리 케 이 션 서버 에 직접 전달 되 며 정적 홈 페이지 일 수도 있 습 니 다.
\ # 첫 번 째 필수 규칙
location = / {
    proxy_pass http://tomcat:8080/index
}
\ # 두 번 째 필수 규칙 은 정적 파일 요청 을 처리 하 는 것 입 니 다. 이것 은 nginx 가 http 서버 로 서 의 강점 입 니 다.
\ # 두 가지 설정 모드 가 있 습 니 다. 디 렉 터 리 가 일치 하거나 접미사 가 일치 합 니 다. 하 나 를 선택 하거나 조합 해서 사용 하 십시오.
location ^~ /static/ {
    root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
    root /webroot/res/;
}
\ # 세 번 째 규칙 은 일반적인 규칙 입 니 다. 동적 요청 을 백 엔 드 응용 서버 에 전송 하 는 데 사 용 됩 니 다.
\ # 비정 상 파일 요청 은 기본적으로 동적 요청 입 니 다. 실제 상황 에 따라 파악 합 니 다.
\ # 현재 프레임 워 크 가 유행 하기 때문에. php,. jsp 접 두 사 를 가 진 경 우 는 매우 적다.
location / {
    proxy_pass http://tomcat:8080/
}
3. ReWrite 문법
last – 기본적으로 이 깃발 을 사용 합 니 다.
break – Rewirte 중지, 계속 일치 하지 않 음
redirect – 임시로 방향 을 바 꾼 HTTP 상태 302 로 되 돌려 줍 니 다.
permanent – 영구적 으로 방향 을 바 꾸 는 HTTP 상태 301 을 되 돌려 줍 니 다.
1. 다음은 판단 할 수 있 는 표현 식 입 니 다.
- f 와! -f     파일 존재 여 부 를 판단 하 는 데 사용 합 니 다.
- d 와! -d      디 렉 터 리 존재 여 부 를 판단 하 는 데 사용 합 니 다.
- e 와! -e     파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용 합 니 다.
- x 와! -x     파일 실행 여 부 를 판단 하 는 데 사용 합 니 다.
2. 다음은 판단 할 수 있 는 전역 변수 입 니 다.
예:http://localhost:88/test1/test2/test.php
$host:localhost
$server_port:88
$request_uri:http://localhost:88/test1/test2/test.php
$document_uri:/test1/test2/test.php
$document_root:D:ginx/html
$request_filename:D:ginx/html/test1/test2/test.php
4. Redirect 문법
server {

listen 80;

server_name start.igrow.cn;

index index.html index.php;

root html;

if ($http_host !~ “^star\.igrow\.cn$&quot {

      rewrite ^(.*) http://star.igrow.cn$1 redirect;

}

}

5. 도 난 방지 체인
location ~* \.(gif|jpg|swf)$ {

    valid_referers none blocked start.igrow.cn sta.igrow.cn;

     if ($invalid_referer) {

        rewrite ^/ http://$host/logo.png;

}

}

6. 파일 형식 에 따라 만 료 시간 설정
location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ {

if (-f $request_filename) {

    expires 1h;

    break;

}

}

7. 특정한 디 렉 터 리 에 접근 하 는 것 을 금지 합 니 다.
location ~* \.(txt|doc)${

     root /data/www/wwwroot/linuxtone/test;

deny all;

}

좋은 웹페이지 즐겨찾기