nginx 에서 location 문법 안내
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/
}
nginx 의 기타 설정 정보 소개
3. ReWrite 문법
last
– 기본적으로 모두 이 깃발 을 사용한다.break
– Rewirte 를 중지 하고 계속 일치 하지 않 음 redirect
– 임시 재 설정 HTTP 상태 302 permanent
되 돌리 기 – 영구적 으로 방향 을 바 꾸 는 HTTP 상태 301 을 되 돌려 줍 니 다.1. 다음은 판단 할 수 있 는 표현 식 입 니 다.
-f
과 !-f
파일 존재 여 부 를 판단 하 는 데 사용 -d
과 !-d
파일 존재 여 부 를 판단 하 는 데 사용 -e
, !-e
파일 실행 여 부 를 판단 하 는 데 사용 -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$" {
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;
}
첨부: 사용 가능 한 전역 변수
$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query
전송 주소: http://outofmemory.cn/code-snippet/742/nginx-location-configuration-xiangxi-explain
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.