溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么在nginx中利用replace-filter-nginx-module替換內(nèi)容

發(fā)布時(shí)間:2021-03-09 15:39:49 來(lái)源:億速云 閱讀:518 作者:Leah 欄目:服務(wù)器

本篇文章為大家展示了怎么在nginx中利用replace-filter-nginx-module替換內(nèi)容,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

安裝

    安裝此模塊需要先安裝 sregex 運(yùn)行庫(kù):

                    1

                    2

                    3

                    4

$ git clone https://github.com/agentzh/sregex

$ cd sregex

$ make

$ make install

    然后安裝 replace-filter-nginx-module 模塊:

                    1

                    2

                    3

                    4

$ 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

    這里采用靜態(tài)編譯的方式安裝模塊,需要重新編譯 nginx 。獲取 nginx 上一次編譯參數(shù):

                    1

                    2

                    3

                    4

                    5

                    6

$ 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 模塊:

                    1

--add-module=/root/soft/src/replace-filter-nginx-module

    最終編譯命令:

                    1

                    2

                    3

                    4

                    5

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

    由于這里是升級(jí)nginx,所以千萬(wàn)不要make install,不然就真的覆蓋了。 接下來(lái)手動(dòng)替換二進(jìn)制文件:

                    1

                    2

$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

$ cp -rfp ./objs/nginx /usr/local/nginx/sbin/

    測(cè)試是否可行:

                    1

                    2

$ nginx -v

nginx version: nginx/1.12.2

    配置是否正常:

                    1

                    2

                    3

$ /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

配置

    這里測(cè)試的是:把接口返回的 img.test.com 換成 media.test.com。

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

                    1

                    2

                    3

                    4

                    5

                    6

                    7

                    8

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;

}

    為:

                    1

                    2

                    3

                    4

                    5

                    6

                    7

                    8

                    9

                    10

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 。

    保存后檢查配置是否ok:

                    1

                    2

                    3

$ /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

    然后熱重啟:

                    1

                    2

                    3

                    4

                    5

# 升級(jí)完成第一次需要重啟

$ service nginx restart

 

# 熱重啟

$ /usr/local/nginx/sbin/nginx -s reload

上述內(nèi)容就是怎么在nginx中利用replace-filter-nginx-module替換內(nèi)容,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

原文鏈接:https://segmentfault.com/a/1190000014077313

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI