> 백엔드 개발 > PHP 튜토리얼 > nginx 위치 기본 구성 및 위치 모범 사례

nginx 위치 기본 구성 및 위치 모범 사례

WBOY
풀어 주다: 2016-07-28 08:28:06
원래의
899명이 탐색했습니다.

http://www.tuicool.com/articles/Jr63qy로 리디렉션

문법 규칙: 위치 [=|~|~*|^~] /uri/ { … }
=는 다음을 의미합니다. 처음에 정확히 일치
^~는 uri가 일반 문자열로 시작한다는 의미이며, 이는 URL 경로와 일치하는 것으로 이해될 수 있습니다. nginx는 URL을 인코딩하지 않으므로 요청은 /static/20%/aa이며 ^~ /static/ /aa 규칙(공백 참고)과 일치할 수 있습니다.
~ 대소문자를 구분하는 정규 일치로 시작
~* 대소문자를 구분하지 않는 정규 일치로 시작
!~ 및 !~*는 각각 대소문자를 구분하는 불일치 및 대소문자를 구분하지 않는 불일치입니다. 정규
/ 범용 일치, 모든 요청이 일치됩니다.
여러 위치 구성의 경우 일치 순서는 다음과 같습니다(참조 자료에서 나온 것이며 실제로 검증되지 않았습니다. 시도해 보면 알게 될 것입니다. 엄격하게 생각하지 말고 참고용으로만 사용하세요).
먼저 match =, 그 다음 match ^~, 다음은 파일 내 순서대로 정규 매칭을 하고, 마지막으로 / 범용 매칭으로 넘겨집니다. 일치가 성공하면 일치가 중지되고 현재 일치 규칙에 따라 요청이 처리됩니다.
예를 들어 다음 일치 규칙이 있습니다.
location = / {
#Rule A
}
location = /login {
#Rule B
}
위치 ^ ~ /static/ {
#규칙 C
}
위치 ~ .(gif|jpg|png|js|css)$ {
#규칙 D
}
위치 ~* .png$ {
#RuleE
}
위치 !~ .xhtml$ {
#RuleF
}
위치 !~* .xhtml$ {
#Rule G
}
location / {
#Rule 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는 일치하지만 규칙 E는 대소문자를 구분하지 않기 때문에 규칙 D는 일치하지 않습니다.
http://localhost/a.xhtml에 액세스하면 규칙 F 및 규칙 G와 일치하지 않습니다. http://localhost/a.XHTML은 대소문자를 구분하지 않기 때문에 규칙 G와 일치하지 않습니다. Rule F와 Rule G는 매칭규칙을 따르지만 매칭되지 않는 소거법에 속하므로, 실제 응용에서 어디에 활용될지 생각해 보세요.
http://localhost/category/id/1111에 액세스하면 결국 규칙 H와 일치하게 됩니다. 위의 규칙 중 어느 것도 일치하지 않기 때문에 nginx는 현재 요청을 FastCGI(php)와 같은 백엔드 애플리케이션 서버로 전달해야 합니다. ), tomcat(jsp), nginx가 방향 프록시 서버로 존재합니다.
실제 응용에서 일반적으로 사용되는 몇 가지 규칙은 다음과 같습니다.
# 웹사이트 루트를 직접 일치시킵니다. 이를 사용하면 처리 속도가 빨라진다고 공식 웹사이트는 말합니다.
# 이는 백엔드 애플리케이션 서버로 직접 전달되거나 정적 홈페이지일 수 있습니다.
# 첫 번째 필수 규칙
location = / {
proxy_pass http://tomcat:8080/ index
}

# 두 번째 필수 규칙은 정적 파일 요청을 처리하는 것입니다. 이는 nginx가 http 서버로서 갖는 장점입니다.
# 구성 모드에는 디렉터리 일치와 접미사 일치가 있습니다. 선택 사항 또는
location ^~ /static/ {
# 요청 /static/a.txt와 함께 사용하면 실제 디렉터리 파일인 /webroot/res/static/a.txt
root에 매핑됩니다. /webroot /res/;
}
위치 ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
root /webroot/res/;
}

#세 번째 규칙은 동적 요청을 백엔드 애플리케이션 서버로 전달하는 데 사용되는 일반적인 규칙입니다
#비정적 파일 요청은 기본적으로 동적 요청이므로 실제 상황에 따라 파악해야 합니다
#결국, .php, .jsp 접미사가 포함된 일부 현재 프레임워크의 인기는 드뭅니다.
location / {
proxy_pass http://tomcat:8080/
}
위의 기본 권장 구성에 대한 보완 사항으로, 전달에 관해 한 가지 주의할 점이 있습니다. 예를 들어 다음 구성은 디렉터리를 전달합니다.
키는 마지막 /에 있으며, localhost/outer/in.html에 액세스할 때 사례 A는 tomcat:8080/in.html로 전달되고 사례 B는 tomcat:8080 /outer/in.html로 전달되므로 꼭 주의하세요.

위 내용은 관련 내용을 포함하여 nginx의 기본 위치 구성 및 위치 모범 사례를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿