Nginx 경로 매 칭 규칙 및 각종 장면 인 스 턴 스
15287 단어 Nginx
location [=||*|^~] /uri/ { # … }
중 괄호 는 경로 가 일치 하 는 기호 입 니 다. 흔히 볼 수 있 는 것 은:
1 =:
2 ^~:
3 ~:
4 ~*:
5 /uri:
6 /:
정확 한 일치
정확 한 일치 사용 = nginx 가 경로 가 일치 할 때 가장 높 은 우선 순위 가 있 음 을 표시 합 니 다. 정확 한 일치 에 성공 하면 nginx 는 일치 하 는 항목 설정 인 스 턴 스 location = / test {...} 에 대한 검색 을 중단 합 니 다.
정확 한 접두사 일치
정확 한 접두사 가 일치 하 는 우선 순 위 는 정확 한 일치 에 버 금 가 는 것 입 니 다. nginx 는 정확 한 접두사 가 일치 하 는 것 을 요청 한 후 일치 하 는 항목 설정 인 스 턴 스 location ^ ~ / test 에 대한 다른 검색 을 중단 합 니 다.a { … }
정규 일치
정규 매 칭 은 대소 문자 구분 과 대소 문자 구분 없 는 두 가지 로 나 뉘 는데 각각 ~ 와 ~ * 로 표시 합 니 다.정확 한 일치 와 정확 한 접두사 일치 요청 이 실 패 했 습 니 다. 관련 정규 일치 location 을 설정 하면 nginx 는 이 요청 을 정규 일치 시 키 려 고 시도 합 니 다.설명 할 것 은 정규 일치 사이 에 우선 순위 가 없 는 것 이 아니 라 설정 파일 에 나타 난 순서대로 일치 하 는 것 입 니 다. 이전 과 일치 하면 설정 인 스 턴 스 # 1 location ~ / test 를 아래로 계속 검색 하지 않 습 니 다.a { … }
# 2 location ~ * / test 설정A { … }
요청 / testa / hello 에 서 는 설정 1 처리 에 일치 합 니 다. / testA / hello 는 설정 2 에 일치 합 니 다.
일반 접두사 일치
일반 접 두 사 는 앞 에 수정자 가 없습니다. location 뒤에 일치 하 는 uri 를 직접 쓰 십시오. 정규 설정 인 스 턴 스 location / img {...} 에 버 금 가 는 우선 순위 입 니 다.
공통 일치
유 니 버 설 매 칭 은 모든 요청 과 일치 할 수 있 습 니 다. 일반 nginx 설정 파일 은 마지막 에 유 니 버 설 매 칭 규칙 이 있 습 니 다. 다른 매 칭 규칙 이 모두 효력 을 잃 었 을 때 요청 은 유 니 버 설 매 칭 규칙 에 의 해 처 리 됩 니 다.일반적인 매 칭 을 설정 하지 않 고 다른 모든 매 칭 규칙 이 실 효 될 경우 nginx 는 404 오류 설정 인 스 턴 스 location / {...} 을 되 돌려 줍 니 다.
전체 예 참조
nginx 경로 규칙 설정: location = / {echo "규칙 A";} location = / login {echo "규칙 B";} location ^ ~ / static / {echo "규칙 C";} location ^ ~ / static / files {echo "규칙 X";} location ~. (gif | jpg | png | js | css) ${echo "규칙 D";} location ~ *. png ${echo "규칙 E";} location / img {echo "규칙 Y";}location / {echo "규칙 F";}
uri 일치 경로 규칙 요청
http://localhost/ A
http://localhost/login B
http://localhost/register F
http://localhost/static/a.html C
http://localhost/static/files/a.txt X
http://localhost/a.png D
http://localhost/a.PNG E
http://localhost/img/a.gif D
http://localhost/img/a.tiff Y
이상 은 nginx 경로 가 일치 하 는 규칙 에 대한 대략적인 정리 와 요약 입 니 다.
2. 각종 장면 의 실례:
# 1、
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name 127.0.0.1;
# charset koi8-r;
location / {
root html;
index index.html index.htm;
}
#
location /drink {
alias D:\apk\drink;
autoindex on;
allow all;
autoindex_exact_size on;
autoindex_localtime on;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# 2、 ssl + +
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8055;
listen 14430 ssl;
# ssl start
server_name ****.nxycsw.cn;
ssl_certificate D:/workspace/human_drink_yanqing/nginx-1.16.1/cert/ssl.pem;
ssl_certificate_key D:/workspace/human_drink_yanqing/nginx-1.16.1/cert/ssl.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# ssl end
# start
location / {
root D:/workspace/human_drink_yanqing/nginx-1.16.1/html/docs/dist;
index index.html index.htm after.html front.html mobile.html;
}
# end
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# start
location /api {
# rewrite ^.+api/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://127.0.0.1:8056/api; #
allow all;
autoindex_exact_size on;
autoindex_localtime on;
proxy_buffering off;
}
# end
}
}
# 3、
worker_processes 2;
events {
worker_connections 1024;
}
stream {
#
upstream api {
server 127.0.0.1:19001 weight=10;
server 127.0.0.1:19002 weight=10;
server 127.0.0.1:19003 weight=10;
server 127.0.0.1:19004 weight=10;
}
#
server {
listen 8084; #
proxy_connect_timeout 300s;
proxy_timeout 700s;
proxy_pass api;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.