nginx 설정 의 proxypass

3264 단어 Nginx
proxy 모듈 의 내용 이 많 습 니 다. 가장 자주 사용 하 는 proxy 를 잠시 말씀 드 리 겠 습 니 다.패스 라 는 명령.
우리 가 크로스 필드 문제 에 부 딪 혔 고 클 라 이언 트 가 CORS 를 지원 할 수 없 을 때 가장 좋 은 방법 은 서버 로 하여 금 프 록 시 를 하 게 하 는 것 이다.전단 페이지 에 있 는 서버 nginx 설정 에 길 을 열 고 proxy 를 사용 하여 다른 도 메 인 이름 의 자원 을 요청 합 니 다.만약 에 크로스 도 메 인 자원 도 같은 기계 에 배치 되면 우 리 는 심지어 proxy 에서 127.0.0.1 까지 할 수 있다. 예 를 들 어:
1
2
3
location /api { 
	proxy_pass http://127.0.0.1:1234;
}

클 라 이언 트 가 / api 라 는 경로 의 자원 을 요청 할 때 서버 는 127.0.0.1 의 1234 포트 에서 자원 을 찾 아 도 메 인 을 뛰 어 넘 는 문 제 를 해결 하 는 데 도움 을 줄 것 입 니 다.proxy_pass 는 현재 $uri 를 가 져 옵 니 다. 따라서 / api 라 는 경로 가 우리 가 임의로 추가 한 것 이 라면 대상 서비스 에 보 내기 전에 rewrite 를 사용 하여 이 불필요 한 경 로 를 처리 할 수 있 습 니 다. 예 를 들 어:
1
2
3
4
location /api/ { 
	rewrite ^/api/(.*) /$1 break; 
	proxy_pass http://127.0.0.1:1234;
}

rewrite 의 역할 은 $uri 를 수정 하 는 것 이지 만 rewrite 는 location 에 다시 일치 하 는 부작용 이 있어 야 합 니 다.proxy 때문에pass 의 처리 단 계 는 location 처리 보다 늦 기 때문에 rewrite 가 다음 location 에 들 어가 서 proxy 를 잃 어 버 리 지 않도록 break 해 야 합 니 다.pass。$1. 첫 번 째 괄호 안에 일치 하 는 정규 인 자 를 나타 낸다.
nginx 에 proxy 설정pass 를 사용 할 때 뒤의 url 에 / 를 추가 하면 절대 루트 경로 에 해당 합 니 다. nginx 는 location 에 일치 하 는 경로 부분 을 대리 하지 않 습 니 다./ 가 없 으 면 일치 하 는 경로 부분 도 대리 에 게 보 냅 니 다.
1
2
3
4
5
6
7
8
9
10
11
    http://nginx_server/test/index.html

1,  location /test/ {
		proxy_pass http://192.168.1.1/   #   
	 }
          http://192.168.1.1/index.html

2,  location /test/ {
		proxy_pass http://192.168.1.1   #    
	 }
          http://192.168.1.1/test/index.html

좋은 웹페이지 즐겨찾기