10.12 - 10.16 rewrite 설정 if, break, last 의 용법, 규칙, nginx 전역 변수
5299 단어 Nginx전역 변수Nginx 실전 과정 노트
Nginx Rwrite 설정
도 메 인 이름 바 꾸 기 (방향 바 꾸 기), URL 재 작성 (위 정적), 움직임 분리 (도 메 인 이름 바 꾸 기, CDN 접속 가속 화)
굵 은 Rwrite 관련 명령
rewrite 로그 기록 열기:
vim nginx/conf/nginx.conf
error_log logs/nginx_error.log notice;
vim nginx/conf/vhost/1.com_default.conf
server{
listen 80;
server_name *.1.com 1.com;
index index.html 80.html;
root /data/t-nginx/1.com;
rewrite_log on;
rewrite /1.html /2.html ;
rewrite /2.html /3.html ;
}
# curl -x127.0.0.1:80 1.com/1.html
3333
tail nginx/logs/nginx_error.log
2018/10/22 11:21:00 [notice] 20967#0: *1906 "/1.html" matches "/1.html", client: 127.0.0.1, server: *.1.com, request: "GET HTTP://1.com/1.html HTTP/1.1", host: "1.com"
2018/10/22 11:21:00 [notice] 20967#0: *1906 rewritten data: "/2.html", args: "", client: 127.0.0.1, server: *.1.com, request: "GET HTTP://1.com/1.html HTTP/1.1", host: "1.com"
2018/10/22 11:21:00 [notice] 20967#0: *1906 "/2.html" matches "/2.html", client: 127.0.0.1, server: *.1.com, request: "GET HTTP://1.com/1.html HTTP/1.1", host: "1.com"
2018/10/22 11:21:00 [notice] 20967#0: *1906 rewritten data: "/3.html", args: "", client: 127.0.0.1, server: *.1.com, request: "GET HTTP://1.com/1.html HTTP/1.1", host: "1.com"
로그 설명:
"" 를 경계 로 하고 왼쪽 규칙, 오른쪽 이 일치 합 니 다.
return 뒤에 상태 코드, URL, text (변수 지원)https://coding.net/u/aminglinux/p/nginx/git/blob/master/rewrite/return.md
피드백 문자열 은 이렇게 쓸 수 있 습 니 다.
return 200 "it's 200";
형식: return 상태 코드 "문자열";
https://coding.net/u/aminglinux/p/nginx/git/blob/master/rewrite/variable.md
nginx 상용 전역 변수
변량
설명 하 다.
$args
요청 한 인자, 예 를 들 어 www. 123. com / 1. php? a = 1 & b = 2 의 $args 는 a = 1 & b = 2 입 니 다.
$content_length
HTTP 요청 메시지 의 "Content - Length"
$conten_type
HTTP 요청 메시지 의 "Content - Type"
$document_root
nginx 가상 호스트 설정 파일 의 루트 매개 변수 에 대응 하 는 값
$document_uri
현재 요청 에 명령 어 를 포함 하지 않 은 URI, 예 를 들 어 www. 123. com / 1. php? a = 1 & b = 2 의 $documenturi 는 1. phop 입 니 다. 뒤의 인 자 는 포함 되 지 않 습 니 다.
$host
호스트 헤드, 즉 도 메 인 이름
$http_user_agent
클 라 이언 트 의 상세 한 정보, 즉 브 라 우 저의 표지 입 니 다. curl - A 로 지정 할 수 있 습 니 다.
$http_cookie
클 라 이언 트 의 쿠키 정보
$limit_rate
nginx 서버 에서 limit 를 사용 하면rate 는 네트워크 속 도 를 설정 하면 표 시 됩 니 다. 설정 하지 않 으 면 0 을 표시 합 니 다.
$remote_addr
클 라 이언 트 의 네트워크 ip
$remote_port
클 라 이언 트 의 port
$remote_user
nginx 에 설정 인증 이 있 으 면 이 변 수 는 클 라 이언 트 인증 사용자 이름 을 대표 합 니 다.
$request_body_file
역방향 프 록 시 를 할 때 백 엔 드 서버 에 보 내 는 로 컬 자원 의 이름
$request_method
자원 요청 방식, GET / PUT / DELETE 등
$request_filename
현재 요청 한 자원 파일 의 경로 이름 은 $document 에 해당 합 니 다.root/$document_uri 의 조합
$request_uri
요청 한 링크, $document 포함uri 와 $args
$scheme
ftp, http, https 와 같은 요청 프로 토 콜
$server_protocol
클 라 이언 트 가 자원 에 사용 할 프로 토 콜 의 버 전 을 요청 합 니 다. 예 를 들 어 HTTP / 1.0, HTTP / 1.1, HTTP / 2.0 등 입 니 다.
$server_addr
서버 IP 주소
$server_name
서버 호스트 이름
$server_port
서버 포트 번호
$uri
와 $documenturi 동일
$http_referer
클 라 이언 트 가 요청 할 때의 refer 는 일반적으로 이 요청 이 어떤 링크 를 통 해 건 너 왔 는 지, curl - e 로 지정 할 수 있 습 니 다.
return 200 은 전역 변 수 를 조합 할 수 있 습 니 다.
형식:
return 200 "전역 변수";
예 를 들 면:
return 200 "$args";
설정 은 다음 과 같 습 니 다:
server {
listen 80;
server_name 2.com;
root /data/t-nginx/2.com;
return 200 "$args";
}
[root@AliKvn vhost]# curl -x127.0.0.1:80 '2.com/2.php?1=a&2=b'
1=a&2=b[root@AliKvn vhost]#
그 중에서 1 = a & 2 = b 는 '$args' 의 변수 값 이 고 다른 변수 도 이 시계 방법 으로 값 을 얻 을 수 있 습 니 다.
예 를 들 면:
return 200 "$document_uri";
server {
listen 80;
server_name 2.com;
root /data/t-nginx/2.com;
return 200 "$document_uri";
}
nginx -s reload
[root@AliKvn vhost]# !curl
curl -x127.0.0.1:80 '2.com/2.php?1=a&2=b'
/2.php[root@AliKvn vhost]#
그럼 2. php 는 $document오줌 을 누 었 다
이상 변 수 는 함께 조합 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.