久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Nginx編譯安裝第三方內(nèi)容替換模塊http_substitutions_filter_module

 昵稱597197 2017-05-17

1. >>ngx_http_substitutions_filter_module OR HttpSubModule ?

為了應(yīng)急處理或者一些需要,,有時候需要使用Nginx的反向代理某站點(diǎn),并通過 HttpSubModule 和ngx_http_substitutions_filter_module 模塊替換正文內(nèi)容和URL。
但是通常LNMP套件安裝的webserver并沒有編譯安裝nginx官方模塊HttpSubModule(官方option),并且,,官方自帶的模塊HttpSubModule 只能匹配1條規(guī)則,但是使用第三方模塊ngx_http_substitutions_filter_module 可以匹配多條規(guī)則,。

備注:
ngx_http_substitutions_filter_module 是指第三方nginx模塊 substitutions4nginx (原:Google Code現(xiàn):github
HttpSubModule 是指Nginx官方的 with-http_sub_module模塊(option)

Nginx自身帶的module并不多,,這也是它為什么性能好,系統(tǒng)開銷較小的原因之一,,相比apache,,它不能動態(tài)的加載module,如果之前編譯安裝了Nginx,,這時候就需要重新編譯nginx添加模塊,,并替換掉原先的nginx執(zhí)行文件。

2. 1.下載需要的文件

substitutions4nginx github下載

  1. # 下載第三方模塊
  2. # cd ~
  3. # git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

3. 2.查看之前Nginx編譯configure

  1. # nginx -V
  2. nginx version: nginx/1.2.7
  3. built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  4. TLS SNI support enabled
  5. 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

因?yàn)镹ginx編譯安裝第三方模塊的時候需要添加上之前編譯的configure參數(shù),,然后重新設(shè)置configure編譯(但是不覆蓋安裝,,只make不install):

  1. ./configure --prefix=/你的安裝目錄 --add-module=/第三方模塊目錄

4. 3.重新編譯Nginx

  1. # 打開Nginx編譯目錄,版本號可能不同
  2. # cd ~/lnmp1.0-full/nginx-1.2.7
  3. # 重新configure
  4. # ./configure --prefix= --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 --add-module=/root/ngx_http_substitutions_filter_module
  5. # make

備注:重新編譯的時候,,記得一定要把以前編譯過的模塊一同加到configure參數(shù)里面.

5. 4.覆蓋原nginx文件

  1. # /etc/init.d/nginx stop
  2. # cd cd objs/
  3. # 覆蓋原文件
  4. # cp nginx /usr/local/nginx/sbin/
  5. # /etc/init.d/nginx start

6. 5.簡單配置

7. ① HttpSubModule 的 官方文檔 說的很清楚,,這里就不寫實(shí)例了,并且功能沒有substitutions4nginx的強(qiáng)大,。

7.1. 在頭部引入指定JS

  1. location / {
  2. sub_filter </head>
  3. '</head><script language="javascript" src="$script"></script>';
  4. sub_filter_types text/html;
  5. sub_filter_once on;
  6. }
  • sub_filter 一行代碼前面是需要替換的內(nèi)容,,后面單引號內(nèi)是替換成的內(nèi)容。
  • sub_filter_once 意思是只查找并替換一次,。on是開啟此功能,,off是關(guān)閉——默認(rèn)值是on。
  • sub_filter_types 一行意思是選定查找替換文件類型為文本型,。也可以不加此行,,因?yàn)槟J(rèn)只查找text/html文件。
  • sub_filter模塊可以用在http, server, location模塊中,。主要作用就是查找替換文件字符,。

8. ② substitutions4nginx

8.1. subs_filter

  1. 實(shí)例:
  2. location / {
  3. subs_filter_types text/html text/css text/xml;
  4. subs_filter st(\d*).example.com $1.example.com ir;
  5. subs_filter a.example.com s.example.com;
  6. }

g(default):替換所有匹配的字符串。
i: 執(zhí)行不區(qū)分大小寫的匹配。
o: 只需將第一個,。
r:該模式是作為一個正則表達(dá)式處理,,默認(rèn)是固定的字符串。

8.2. subs_filter_types

  1. syntax: subs_filter_types mime-type [mime-types]
  2. default: subs_filter_types text/html
  3. context: http, server, location
  4. subs_filter ‘<(no?script.*?)>(.*?)<(\/no?script.*?)>’ gi; //替換掉全部的<noscript></noscript>
  5. subs_filter ‘<(s?cript.*?)>(?:\s|\S)*?<(\/s?cript.*?)>’ gi; //替換掉全部的<script>包換中間換行</script>
  6. subs_filter ‘<(i?frame.*?)>(.*?)<(\/i?frame.*?)>’ gi; //替換<iframe></iframe>

9. >>參考資料<<

ngx_http_sub_module

substitutions4nginx

Nginx第三方模塊


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多