nginx는 교체 필터-nginx-모듈을 사용하여 콘텐츠 교체를 구현합니다.

不言
풀어 주다: 2023-03-22 19:02:01
원래의
2613명이 탐색했습니다.

이 글에서 공유하는 내용은 nginx가 교체-필터-nginx-모듈을 사용하여 콘텐츠 교체를 구현한다는 것입니다. 매우 상세합니다. 필요한 친구가 이를 참조할 수 있습니다.

때때로 우리는 반환된 콘텐츠에 일부 문자를 추가하고 싶습니다. 응답(예: PHP 인터페이스) 각 언어 코드와 관련된 메소드(예: PHP의 str_replace)를 사용하여 문자열을 교체할 수 있지만, 코드를 수정하지 않고 nginx 수준에서 교체하는 것이 더 편리합니다. str_replace)进行替换,但是在nginx层面替换是更方便的,无需修改代码。

约定:本文源代码目录统一放在:/root/soft/src 里。

安装

安装此模块需要先安装 sregex 运行库:

$ git clone https://github.com/agentzh/sregex
$ cd sregex
$ make
$ make install
로그인 후 복사

然后安装 replace-filter-nginx-module 模块:

$ cd /root/soft/src
$ git clone https://github.com/agentzh/replace-filter-nginx-module
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
$ tar zxvf nginx-1.12.2.tar.gz
로그인 후 복사

这里采用静态编译的方式安装模块,需要重新编译 nginx 。获取 nginx 上一次编译参数:

$ nginx -V
nginx version: nginx/1.12.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module
로그인 후 복사

这里添加 replace-filter-nginx-module 模块:

--add-module=/root/soft/src/replace-filter-nginx-module
로그인 후 복사

最终编译命令:

cd nginx-1.12.2

$  ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt=-ljemalloc --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --add-module=/root/soft/src/replace-filter-nginx-module
 
$ make
로그인 후 복사

由于这里是升级nginx,所以千万不要make install,不然就真的覆盖了。 接下来手动替换二进制文件:

$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
$ cp -rfp ./objs/nginx /usr/local/nginx/sbin/
로그인 후 복사

测试是否可行:

$ nginx -v
nginx version: nginx/1.12.2
로그인 후 복사

配置是否正常:

$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
로그인 후 복사
로그인 후 복사

配置

这里测试的是:把接口返回的 img.test.com 换成 media.test.com

修改: /usr/local/nginx/conf/vhost/test.com.conf

location ~ [^/]\.php(/|$)
{
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
}
로그인 후 복사

为:

location ~ [^/]\.php(/|$)
{
    replace_filter 'img.test.com' 'media.test.com' g;
    replace_filter_types application/json;
    
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
로그인 후 복사

注意需要添加replace_filter_types

규칙: 이 기사의 소스 코드 디렉터리는 /root/soft/src에 있습니다.

Installation

이 모듈을 설치하려면 먼저 sregex 런타임 라이브러리를 설치해야 합니다:

$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
로그인 후 복사
로그인 후 복사

그런 다음 replace-filter-nginx-module 모듈을 설치합니다:

# 升级完成第一次需要重启
$ service nginx restart 
 
# 热重启
$ /usr/local/nginx/sbin/nginx -s reload
로그인 후 복사

정적 컴파일 여기서 사용되는 모듈을 설치하려면 nginx를 다시 컴파일해야 합니다. nginx 마지막 컴파일 매개변수 가져오기: rrreee여기에 replace-filter-nginx-module 추가 모듈:
rrreee
최종 컴파일 명령: rrreee여기 때문에 nginx를 업그레이드하는 중이므로 make install하지 마세요. 그렇지 않으면 덮어쓰게 됩니다. 다음으로 바이너리 파일을 수동으로 교체합니다:
rrreee
실행 가능한지 테스트: rrreee 구성이 정상인지 여부:
rrreee
구성 여기서 테스트되는 내용은 다음과 같습니다. img.test.com 는 인터페이스를 반환합니다. code>는 <code>media.test.com으로 대체됩니다.

수정: /usr/local/nginx/conf/vhost/test.com.confrrreee 다음으로:

rrreee

replace_filter_types 를 추가해야 합니다.

저장 후 구성이 올바른지 확인하세요. rrreee그런 다음 핫 재시작:

rrreee

Reference1. nginx 동적 추가 모듈이 설치되었습니다

http://coolnull.com/4245.html2. LNMP 원활한 nginx 업그레이드 및 ngx_lua 모듈 설치 튜토리얼

http://www.mamicode.com/info-...
3. openresty/replace-filter-nginx-module: 응답 본문에서 정규식 대체 스트리밍 🎜🎜https ://github.com/openresty/...🎜🎜4.ngx_http_substitutions_filter_module보다 더 강력한 대체 모듈, sregex의 replacement-filter-nginx-module 🎜🎜https://www.cnblogs.com/archo...🎜🎜 🎜원본 버전: 🎜http://www.cnblogs.com/52fhy/...🎜🎜🎜관련 권장 사항: 🎜🎜🎜nginx 업로드 파일 크기 수정 방법 🎜🎜🎜🎜nginx PHP 인스턴스 구성 🎜🎜🎜🎜 PHP + Nginx 환경 Curl 액세스 로컬 시간 초과🎜🎜🎜🎜🎜

위 내용은 nginx는 교체 필터-nginx-모듈을 사용하여 콘텐츠 교체를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿