Nginx 의 위치 소개
4395 단어 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$" {
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.