nginx 중 location 에서 proxypass 와 rewrite 의 응용
upstream datacollectbackend{
#ip_hash;
server 10.234.1.211:6100 max_fails=5 fail_timeout=30s;
server 10.234.1.26:7100 max_fails=5 fail_timeout=30s;
}
location ~* ^/OCC_DATACO_WEB/.*$ {
include deny.conf;
proxy_pass http://datacollectbackend;
include proxy.conf;
error_log logs/datacollection_error.log error;
access_log logs/datacollection_access.log main;
}
지금 은 OCCDATACO_WEB 이름 이 너무 길 어서 dt 로 바 꾸 고 싶 은 데 공사 가 아직 시작 되 지 않 았 습 니 다. 먼저 테스트 를 해 봐 야 합 니 다. www. ds. com / dt / posystem 에 OCC 를 호출 하 라 는 것 입 니 다.DATACO_WEB 공사 안 으로 들 어가.
그 러 니까 예전 에 www. ds. com / OCC 로DATACO_WEB / possystem 접근, 현재 www. ds. com / dt / posystem 접근 으로 변경.하지만 온라인 공 사 는 OCCDATACO_WEB, 하지만 현재 dt 프로젝트 가 완료 되 지 않 았 습 니 다. 과도기 에 있 습 니 다. 새로운 dt 가 완 선 된 후에 OCC 를 제거 해 야 합 니 다.DATACO_WEB 를 dt 로 바꾸다
원래 블 로그 주소:http://blog.csdn.net/mchdba/article/category/5981097 , 원래 csdn 블 로 거 mchdba 의 허락 없 이 전송 할 수 없습니다.
2, location 의 proxy패스
dt 의 점프 를 OCC 로 직접 전환 합 니 다.DATACO_WEB 같은 proxypass, 아래 와 같다.
location ~* ^/dt/.*$ {
include deny.conf;
proxy_pass http://datacollectbackend;
include proxy.conf;
error_log logs/dt_error.log error;
access_log logs/dt__access.log main;
}
그리고 nginx 를 다시 시작 하고 www. ds. com / dt / posystem 을 통 해 방문 한 결과 다음 과 같은 오류 가 발생 했 습 니 다.
Sorry,
URL , , 。
,
3, rewrite 로 location 대신
location ~* ^/dt/.*$ {
rewrite /dt/(.*) /OCC_DATACO_WEB/$1 break;
}
nginx, www.ds.com/dt/possystem , , 。
4. 총화
rewrite 기능 은 nginx 가 제공 하 는 전역 변수 나 자신 이 설정 한 변 수 를 사용 하여 정규 표현 식 과 표지 위 치 를 결합 하여 url 재 작성 과 재 설정 을 실현 하 는 것 입 니 다.rewrite 는 server {}, location {}, if {} 에 만 놓 을 수 있 고 도 메 인 이름 뒤에 전 달 된 매개 변 수 를 제외 한 문자열 에 만 작용 할 수 있 습 니 다. 예 를 들 어http://seanlook.com/a/we/index.php?id=1&u=str / a / we / index. php 만 다시 씁 니 다.문법 rewrite regex replacement [flag];
도 메 인 이름 이나 매개 변수 문자열 에 대응 하면 전역 변 수 를 사용 할 수도 있 고 proxy 를 사용 할 수도 있 습 니 다.패스 역방향 에이전트.rewrite 와 location 기능 이 비슷 하고 모두 점프 를 실현 할 수 있 음 을 나타 낸다. 주요 차이 점 은 rewrite 는 같은 도 메 인 이름 에서 자원 을 얻 는 경 로 를 변경 하 는 것 이 고 location 은 같은 경 로 를 제어 하거나 역방향 대 리 를 할 수 있 으 며 proxy다른 기계 로 패스 하 다.rewrite 도 location 에 쓰 이 는 경우 가 많 습 니 다. 실행 순 서 는:
server 블록 을 실행 하 는 rewrite 명령 은 location 가 선택 한 location 의 rewrite 명령 과 일치 합 니 다. 만약 에 URI 가 재 작성 되면 1 - 3 을 다시 반복 해서 실행 합 니 다. 실제 존재 하 는 파일 을 찾 을 때 까지.10 회 이상 순환 하면 500 내부 서버 오류 로 돌아 갑 니 다.
이번 실천 에 서 는 dt 의 프로젝트 방문 을 모두 OCC 로 가 리 켜 야 합 니 다.DATACO_WEB 프로젝트 안 으로 들 어가 기 때문에 location 에 proxy 만 추가 해 야 합 니 다.패스 는 부족 합 니 다. rewrite 가 필요 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.