nginx 요청 전송 실현

2413 단어
역방향 대 리 는 여러 장소 에 적용 되 며 부하 균형 이 가장 보편적 인 용법 이다.
nginx 는 현재 가장 유행 하 는 웹 서버 중 하나 로 서 역방향 대 리 를 편리 하 게 실현 할 수 있 습 니 다.
nginx 역방향 에이전트 공식 문서: NGINX REVERSE PROXY
호스트 에 여러 개의 서로 다른 웹 서버 를 배치 하고 80 포트 에서 이 웹 서버 를 동시에 방문 해 야 할 때 nginx 의 역방향 프 록 시 기능 을 사용 할 수 있 습 니 다. nginx 로 80 포트 에서 모든 요청 을 감청 하고 퍼 가기 규칙 (흔히 URI 로 퍼 가기) 에 따라 해당 하 는 웹 서버 에 퍼 뜨 릴 수 있 습 니 다.
예 를 들 어 webmail, webcom, webdefault 세 서버 가 각각 portmail, portcom, portdefault 포트 에서 실 행 됩 니 다. 80 포트 에서 이 세 웹 서버 를 동시에 방문 하려 면 80 포트 에서 nginx 를 실행 한 다음 / mail 에서 요청 을 webmail 서버 로 전송 하고 / com 에서 요청 을 webcom 서버 로 전송 할 수 있 습 니 다.다른 모든 요청 을 웹 default 서버 에 전송 합 니 다.
서버 도 메 인 이름 이 example. com 이 라 고 가정 하면 nginx http 설정 은 다음 과 같 습 니 다.

http {
 server {
   server_name example.com;
 
   location /mail/ {
     proxy_pass http://example.com:protmail/;
   }
 
   location /com/ {
     proxy_pass http://example.com:portcom/main/;
   }
 
   location / {
     proxy_pass http://example.com:portdefault;
   }
 }
}
 


이상 의 설정 은 다음 규칙 에 따라 요청 을 전달 합 니 다 (GET 와 POST 요청 은 모두 전달 합 니 다).
장차http://example.com/mail/ 요청http://example.com:portmail/ 장차http://example.com/com/ 요청http://example.com:portcom/main/ 기타 모든 요청 을 전송http://example.com:portdefault/
주의해 야 할 것 은 상기 설정 에서 웹 default 의 프 록 시 설정 은 URI 가 지정 되 지 않 았 고 웹 메 일과 웹 com 의 프 록 시 설정 은 URI 가 지정 되 어 있 습 니 다 (각각 / 와 / main /).
프 록 시 주소 에 URI 가 있 으 면 이 URI 는 location 에 일치 하 는 URI 부분 을 바 꿉 니 다.
프 록 시 주소 에 URI 가 없 으 면 전체 요청 URL 로 프 록 시 서버 에 전 송 됩 니 다.
공식 문서 설명:
If the URI is specified along with the address, it replaces the part of the request URI that matches the location parameter. If the address is specified without a URI, or it is not possible to determine the part of URI to be replaced, the full request URI is passed (possibly, modified).
위 설정 의 전송 예시:

http://example.com/mail/index.html -> http://example.com:portmail/index.html
http://example.com/com/index.html -> http://example.com:portcom/main/index.html
http://example.com/mail/static/a.jpg -> http://example.com:portmail/static/a.jpg
http://example.com/com/static/b.css -> http://example.com:portcom/main/static/b.css
http://example.com/other/index.htm -> http://example.com:portdefault/other/index.htm

좋은 웹페이지 즐겨찾기