Nginx는 경량이지만 매우 강력하지만 WEB 서비스, 리버스 프록시, 부하 분산, 캐싱 서비스를 제공하는 데 사용할 수 있으며, 일부 모듈을 추가하면 RTMP 스트리밍 서비스도 구축할 수 있습니다. 최근에 고객 요구가 발생해 nginx 웹 콘텐츠 교체 모듈을 사용해야 했습니다. 다음은 관련 실험 기록이며, 여러분과 소통하기 위해 게시한 것입니다. 부족한 점이 있으면 알려주세요.
ngx_http_sub_module 모듈은 웹사이트의 응답 내용 내 문자열을 수정하는 필터입니다. 이 모듈은 이미 nginx에 내장되어 있지만 기본적으로 설치되어 있지 않으며, 설치하려면 구성 매개변수를 추가해야 합니다: --with-http_sub_module 이미 nginx를 설치했다면 이 모듈만 추가하면 됩니다.
1. 설치:
NGINX 공식 웹사이트 다운로드 및 설치 패키지:하이퍼링크 로그인이 보입니다.
# wget하이퍼링크 로그인이 보입니다.
# 타르 -ZXVF nginx-1.11.5.tar.gz
# CD NGINX-1.11.5
# ./configure --with-http_stub_status_module --with-http_sub_module && Make & Make 설치
2. 공통 지침:
2.1 sub_filter 명령어: sub_filter 문자열(원래 문자열) 교체(교체할 문자열);
설명 문자열을 설명 문자열로 교체할 필요성을 설정하는 데 사용됩니다. 문자열은 교체할 문자열이고, 교체는 변수를 가질 수 있는 새 문자열입니다.
2.2 sub_filter_last_modified 지시: sub_filter_last_modified on | 이상;
웹 페이지의 대체 값을 수정할지 여부를 설정하는 데 사용되며, http, server, nginx.conf의 위치에서 설정할 수 있으며, 기본값은 꺼져 있습니다.
2.3 sub_filter_once지시: sub_filter_once on | 이상;
줄 교체 횟수를 정하는 데 사용된다.기본적으로 한 번만 교체됩니다. 켜져 있으면 기본적으로 처음 매칭된 캐릭터만 교체되고, 꺼져 있으면 매칭된 모든 캐릭터가 교체됩니다;
2.4 sub_filter_types 지시: sub_filter_types *
교체할 MIME 타입을 지정하는 데 사용되며, 기본값은 "text/html"이며, *로 설정하면 all;
참고: 위 명령어는 http, server, location에서 nginx.conf에서 설정할 수 있습니다.
3. 웹 콘텐츠 역대 동적 대체 예시 참조:
상류하이퍼링크 로그인이 보입니다. {
서버 118.184.180.46:80;
}
#反向代理 여러 서버 IP가 있다면 부하 분산 방법이나 가중치 같은 정책을 추가할 수도 있습니다 #
서버 {
듣기 80;
#监听端口 #
server_name하이퍼링크 로그인이 보입니다.;
#设置server 이름 #
차르셋 UTF-8;
#设置字符编码为utf-8, 실제 상황에 따라 조정할 수 있습니다 #
위치 / {
proxy_pass하이퍼링크 로그인이 보입니다.$request_uri;
#反向代理规则 #
proxy_set_header 수락-인코딩은 수축합니다;
#设置反向代理头部, 때때로 원본 서버가 gzip 포맷에 응답할 수 있고, 이를 교체할 때 문제가 발생할 수 있는데, 이 항목으로 해결할 수 있습니다 #
subs_filter '183.251.160.127' '123.181.128.17';
#替换指定ip 여기서 183.251.160.127을 123.181.128.17로 바꿔 주세요. #
subs_filter '푸젠성 롱옌시 모바일' '허베이성 탕산시 텔레콤';
#替换城市. 운영자 정보, 이 nginx 교체 모듈은 중국어 교체를 지원합니다 #
subs_filter_types 텍스트/html;
#指定被替换的MIME类型 #
sub_filter_once 말이야;
#指定字符串替换次数, '켜'는 첫 번째로 매치된 문자만 교체하는 것을, 꺼짐은 매칭된 모든 캐릭터를 대체하는 것을 의미합니다 #
}
}
설명:
1. 이 모듈은 대문자 구분이 아닙니다;
2. 중국어 대체 지원;
Nginx.conf 전체 구성:
실험 효과의 스크린샷:
결론:
비슷한 콘텐츠 대체 모듈도 nginx_substitutions_filter, 관심이 있다면 실험하고 플레이할 수 있습니다.
렌더링:
코드 구성:
|