nginx 역방향 프 록 시 URL 교체 방안
4762 단어 nginx
1. 위치 직접 바 꾸 기 일치 부분
1.proxy_pass 의 대상 주 소 는 기본적으로 도 메 인 이름 만 프 록 시 하고 url 과 매개 변수 부분 은 변 하지 않 음 을 표시 합 니 다. (요청 한 path 를 proxy pass 대상 도 메 인 이름 에 연결 한 후 프 록 시 URL 로 사용 합 니 다)
2. 대상 주소 뒤에 / 를 추가 하면 path 에서 location 이 일치 하 는 부분 을 잘 라 낸 다음 proxy 에 연결 합 니 다.pass 목표 주소
server {
listen 80;
server_name localhost;
location /system {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# proxy_pass /
location /system {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
예 를 들 면:http://192.168.25.132/system/sysMenu/tree
위의 두 일치 가 성공 한 후 실제 에이전트 의 목표 url 은 각각
http://127.0.0.1:8080/system/sysMenu/tree (/ system / sysmenu / tree 를 proxy pass 주소 127.0.0.1: 8080 에 연결 한 후)
http://127.0.0.1:8080/sysMenu/tree (/ system / sysmenu / tree 에서 일치 하 는 location / system 을 proxy pass 주소 의 127.0.0.1: 8080 에 연결 한 후)
2. nginx rewrite 모듈 사용
rewrite 는 URL 재 작성 을 실현 하 는 관건 적 인 명령 입 니 다. regex (정규 표현 식) 부분 내용 에 따라 replacement 으로 재 설정 하고 끝 은 flag 태그 입 니 다.
rewrite [flag];
flag
: error_log
:perl
: replacement
flag :rewrite flag
flag :
last # , location URI
break # ,
redirect # 302 , URL
permanent # 301 , URL
본 서비스 에 대한 모든 요청 을 www. summer. com 으로 전송 합 니 다.
rewrite ^/(.*) http://www.summer.com/$1 break;
이 서버 에 있 는 모든 요청 경로 에서 / system 으로 시작 하 는 요청 을 system 이 없 는 것 으로 바 꿉 니 다. 예 를 들 어http://192.168.25.132/system/sysMenu/tree 일치 후 주소 변경 http://127.0.0.1:8080/sysMenu/tree
rewrite ^/system/(.*) /$1 break;
설명:
rewrite 는 고정 키워드 로 rewrite 일치 규칙 을 시작 하 는 것 을 표시 합 니 다.
regex 부분 은... ^/(.*) ,이것 은 정규 표현 식 으로 전체 도 메 인 이름과 뒤의 경로 주소 와 일치 합 니 다.
replacement 부분 은...http://www.summer.com/$1 $1 은 regex 부분 () 에서 추출 한 내용 입 니 다.성공 후 이동 한 URL 과 일치 합 니 다.
플래그 부분 break 는 일치 하지 않 음 을 표시 하고 새 것 으로 이동 합 니 다. http://www.summer.com/$1 주소 상.
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#/data/manager
root /data/manager;
index index.html index.htm;
}
location /system {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite ^/system/(.*) /$1 break;
}
}
regex 정규 표현 식 설명
문자
묘사 하 다.
\
뒤에 있 는 문 자 를 특수 문자 나 원 의 문자 또는 뒤로 참조 하도록 표시 합 니 다.예 를 들 어 '' 는 줄 바 꿈 문자 와 일치 하고 '\ $' 는 '$' 와 일치 합 니 다.
^
입력 문자열 의 시작 위치 와 일치 합 니 다.
$
입력 문자열 의 끝 위치 와 일치 합 니 다.
*
앞의 문자 와 0 번 또는 여러 번 일치 합 니 다.예 를 들 어 "ol *" 은 "o" 와 "ol", "oll" 과 일치 할 수 있 습 니 다.
+
앞의 문자 와 한 번 또는 여러 번 일치 합 니 다.예 를 들 어 'ol +' 는 'ol' 과 'oll', 'oll' 과 일치 하지만 'o' 와 일치 하지 않 습 니 다.
?
앞의 문자 와 0 번 또는 한 번 일치 합 니 다. 예 를 들 어 "do (es)?" 는 "do" 또는 "does", "?" 는 "{0, 1}" 과 같 습 니 다.
.
"" 를 제외 한 모든 단일 문자 와 일치 합 니 다. "" 를 포함 한 임의의 문자 와 일치 하려 면 "[.]" 와 같은 모드 를 사용 하 십시오.
(pattern)
괄호 안에 pattern 을 일치 시 키 고 그 뒤에 해당 하 는 매 칭 을 가 져 올 수 있 습 니 다. $0... $9 속성 으로 작은 괄호 에 있 는 매 칭 내용 을 가 져 옵 니 다. 괄호 문 자 를 일치 시 키 려 면 \ (Content \) 가 필요 합 니 다.
rewrite 기업 응용 장면
Nginx 의 rewrite 기능 은 기업 에서 매우 광범 위 하 게 응용 된다.
u 사용자 가 조회 하 는 URL 을 조정 할 수 있 고 더욱 규범화 되 며 개발 및 제품 직원 의 수요 에 부합 합 니 다.
u 검색엔진 이 사이트 의 내용 과 사용자 체험 을 더욱 잘 할 수 있 도록 기업 은 동적 URL 주 소 를 정적 주소 로 위장 하여 서 비 스 를 제공한다.
u 인터넷 주소 가 새 도 메 인 이름 으로 바 뀌 면 오래된 접근 을 새로운 도 메 인 이름 으로 옮 깁 니 다.예 를 들 어 경 동 을 방문 한 360 buy. com 은 jd. com 으로 이동한다.
u 특수 변수, 디 렉 터 리, 클 라 이언 트 의 정보 에 따라 URL 조정 등
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.