Nginx map 사용 설명
map 명령 은 ngxhttp_map_module 모듈 에서 제공 합 니 다. 기본적으로 nginx 를 설치 하면 이 모듈 을 설치 합 니 다.
map 의 주요 역할 은 사용자 정의 변 수 를 만 드 는 것 입 니 다. nginx 의 내 장 된 변 수 를 사용 하여 특정한 규칙 과 일치 합 니 다. 일치 하 는 데 성공 하면 사용자 정의 변 수 를 설정 합 니 다.이 사용자 정의 변 수 는 다른 용도 로 도 사용 할 수 있다.
직접 예 를 들 어 이해 하기 가 비교적 뚜렷 하 다.
map $args $foo {
default 0;
debug 1;
}
설명:
$args 는 nginx 내 장 된 변수 입 니 다. 요청 url 의 인자 입 니 다.$args 가 debug 에 일치 하면 $foo 의 값 은 1 로 설 정 됩 니 다. $args 가 하나 도 일치 하지 않 으 면 $foo 는 default 정의 값 입 니 다. 여기 서 0 입 니 다.
map 문법
map $var1 $var2 {...}
map 명령 의 세 가지 인자:
1. default: 원본 변수 가 표현 식 과 일치 하지 않 을 때 사용 할 기본 값 을 지정 합 니 다.default 이 설정 되 어 있 지 않 으 면 빈 문자열 을 기본 결과 로 사용 합 니 다.
2. hostnames: 접두사 나 접두사 마스크 로 도 메 인 이름 을 원본 변수 값 으로 지정 할 수 있 습 니 다.이 매개 변 수 는 값 맵 목록 의 맨 앞 에 써 야 합 니 다.
3. include: 맵 값 이 있 는 파일 을 하나 이상 포함 합 니 다.
map $http_user_agent $agent {
default "";
~curl curl;
~*apachebench" ab;
}
map $uri $value {
/abc /index.php;
~^/teacher/(?.*)$ /boy/;
~/fz(/.*) /index.php?fz=1;
}
= = 주의: 맵 블록 에서 이름 캡 처 나 위치 캡 처 변 수 를 참조 할 수 없습니다.예 를 들 어 ~ ^ / qupeicom / (. *) / peyin / $1;이렇게 하면 nginx: [emerg] unknown variable = =
= = 주의 2: 원본 변수 값 에 '~' 와 같은 특수 문자 가 포함 되 어 있 으 면 '\' 로 의 미 를 바 꿔 야 합 니 다. = =
map $http_referer $value {
Mozilla 111;
\~Mozilla 222;
}
map $http_referer $value {
Mozilla 'chrom';
\~safity $http_user_agent;
인 스 턴 스 (1)
# http{} server{} 。
add_header Access-Control-Allow-Origin "http://www.tutu.com";
add_header Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, DELETE";
add_header Access-Control-Max-Age "3600";
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept;
#!/bin/bash
# http://www.tutu.com , 。 , ,
add_header Access-Control-Allow-Origin "*";
모든 것 을 허용 하지 않 으 려 면 도 메 인 이름 을 여러 개 허용 해 야 합 니 다. map 가 필요 합 니 다.
map $http_origin $corsHost {
default 0;
"~http://www.haibakeji.com" http://www.haibakeji.com;
"~http://m.haibakeji.com" http://m.haibakeji.com;
"~http://wap.haibakeji.com" http://wap.haibakeji.com;
}
server
{
listen 80;
server_name www.haibakeji.com;
root /nginx;
location /
{
add_header Access-Control-Allow-Origin $corsHost;
}
}
인 스 턴 스 (2)
http {
map $uri $match {
~^/hello/(.*) http://www.hello.com/;
}
server {
listen 8080;
server_name test.hello.com;
location /hello {
default_type text/plain;
echo uri: $uri;
echo match: $match;
echo capture: $1;
echo new: $match$1;
}
질문 이 있 을 수 있 습 니 다. map 는 http 세그먼트 에 만 사용 할 수 있 으 니 전체 적 인 것 입 니 다.이 설정 은 모든 가상 호스트 에 접근 하 는 요청 을 일치 시 키 고 변 수 를 설정 합 니 다. 그러나 사실은 그렇지 않 습 니 다. 관련 변 수 를 사용 하지 않 은 요청 에 있어 서 map 작업 을 수행 하지 않 습 니 다.성능 상의 손실 은 없다.
질문
마스크 와 정규 가 동시에 일치 하 는 등 여러 개의 특정한 변수 와 일치 하면 다음 순서대로 선택 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.