国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx服務器的nginx-http-footer-filter模塊配置

2024-08-30 12:27:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx服務器的nginx-http-footer-filter模塊配置,nginx-http-footer-filter用作在請求的頁面底部插入代碼,需要的朋友可以參考下
 

nginx-http-footer-filter想必大家都覺得很陌生,那我們就來認識一下它吧,這是淘寶開發的nginx模塊. 它用于nginx在響應請求文件底部追加內容. 今天抽空研究下這個插件,希望對大家有所幫助。為什么發現了這個插件,因為這幾天公司需要在所有shtml文件后面追加一個js代碼用來做統計(之前統計代碼沒加齊全),在尋求解決方法的過程中找到了它認識了它最后喜歡上了它,你可能以為我用這個插件去實現了我要的功能,其實在認識他之前我用shell腳本替換齊全了. 不過我還是決定研究測試一下nginx-http-footer-filter,或許以后的需求上能有幫助,更或許能幫上其他需要幫助的人.進入正題吧.
1. nginx-http-footer-filter到底是做什么的?
說白了,就是在請求的頁面底部插入你要插入的代碼。
2. 我們能用nginx-http-footer-filter來做什么?
1、統一追加js代碼用于統計(我是這么想的)
2、底部追加響應這個請求的realsver(后端真實服務器)信息,便于系統管理員排查故障.
3、你管理著數量龐大的虛擬主機,在所有web后面追加你的廣告代碼,黑鏈什么的(很無恥)
4、舉一反三吧,自己想想能用來做什么吧.
淘寶用它來做什么?
打開淘寶首頁,查看他源代碼,拖到最下面,內容如下:

<!--city: fuzhou--><!--province: unknown--><!--hostname: --><!--hostname: home1.cn199-->

我們可以很清晰的看到,這邊有省和地區還有主機名,也就是淘寶真實服務器的主機名,處理我這個請求的主機名為home1.cn199, city取到了fuzhou,provinece省份沒取到,估計是它Geo的問題
或者隨便打開一個商品頁面, 查看源代碼,如下:

</html><script type="text/javascript">TShop.initFoot({});</script>

可以看到他這邊給這頁面追加了一個js代碼,淘寶開發這個模塊的用意想必大家都明白了,集思廣益,或許大家還有更好的用處.
3. 怎么安裝nginx-http-footer-filter
3.1 下載地址:

https://github.com/alibaba/nginx-http-footer-filter/tree/1.2.2
3.2 安裝nginx-footer模塊
之前已經安裝過nginx,所以我選擇覆蓋nginx文件。

# cd /usr/local/src/# wget https://codeload.github.com/alibaba/nginx-http-footer-filter/zip/1.2.2# unzip 1.2.2 # http://nginx.org/download/nginx-1.4.1.tar.gz# tar -xzvf nginx-1.4.1.tar.gz# cd nginx-1.4.1# ./configure --prefix=/usr/local/nginx-1.4.1 /--with-http_stub_status_module --with-http_realip_module /--add-module=../nginx-http-footer-filter-1.2.2# make# mv /usr/local/nginx-1.4.1/sbin/nginx /usr/local/nginx-1.4.1/sbin/old_nginx# mv objs/nginx /usr/local/nginx-1.4.1/sbin/# /usr/local/nginx-1.4.1/sbin/nginx -s stop# /usr/local/nginx-1.4.1/sbin/nginx

3.3 驗證模塊是否安裝成功

# /usr/local/nginx-1.4.1/sbin/nginx -Vnginx version: nginx/1.4.1built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)TLS SNI support enabledconfigure arguments: --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module --with-http_realip_module --add-module=../nginx-http-footer-filter-1.2.2

4. 怎么使用nginx-http-footer-filter模塊
4.1 配置location
在location中使用footer "你的內容" 即可.看如下配置

server {    listen    173.255.219.122:80;    server_name test.ttlsa.com;    access_log /data/logs/nginx/test.ttlsa.com.access.log main;     index index.html index.php index.html;    root /data/site/test.ttlsa.com;    location / {      footer "<!-- $date_gmt -->";      index index.html;    }     location =/html/2252.css {      footer_types text/css;      footer "/* host: $server_name - $date_local */";}

4.2 測試nginx-footer效果

# cat 2252.shtml<html>  <head>  <title>test</title>  </head>  <body>    this is webpage  </body></html>

訪問站點test.ttlsa.com/html/2252.shtml

詳解Nginx服務器的nginx-http-footer-filter模塊配置

如圖,我們可以看到文件最底部加上了<!-- 1376063369 -->,怎么變成了時間撮了,因為我這邊是ssi的語法,如果你不知道什么是ssi,那么請參考文章什么是ssi.
[warning]他僅僅是在文件的最后一行追加,而不是<body>里面.這點大家要注意了.[/warning]
4.3 再來測試一下css文件

# cat 2242.css# this is css file

如下是訪問結果:

# this is css file/* host: test.ttlsa.com - 1376064324 */

看圖:

詳解Nginx服務器的nginx-http-footer-filter模塊配置

5. 我能寫多個footer指令嗎?
不行,以下我寫了兩個footer

location / {  footer "12312321321";  footer "<!-- $date_gmt -->";  index index.html;}

如下測試,提示footer指令重復了

# /usr/local/nginx-1.4.1/sbin/nginx -tnginx: [emerg] "footer" directive is duplicate in /usr/local/nginx-1.4.1/conf/vhost/test.ttlsa.com.conf:13nginx: configuration file /usr/local/nginx-1.4.1/conf/nginx.conf test failed

6. 只能用ssi變量嗎?
當然不是,隨便你寫,可以是ssi指令,也可以是nginx變量,也可以是任何無意義的字符串
如下:

footer "12312321321";footer "<!--12312321321-->";footer "<!--$remote_addr-->";

比如我想知道這個頁面是哪臺web服務器處理的,那么我在底部插入主機名即可.這樣,有500錯誤,我便可以馬上定位到具體的服務器了

footer "<!--$hostname-->";

返回結果如下:

詳解Nginx服務器的nginx-http-footer-filter模塊配置

7. 服務器返回500,404,403等錯誤, 是否還會追加內容到底部
會,如果不追加,就無法通過返回的頁面得知哪臺web出現故障,這明顯就不符合作者的初衷了
配置如下:

location / {  return 500;  footer "<!--$hostname-->";}

結果如下:

詳解Nginx服務器的nginx-http-footer-filter模塊配置

8. 模塊指令說明:
footer模塊非常簡單,就只有兩個指令,具體說明如下
footer字符串
默認值: 
配置段: http, server, location
這個定義了將什么內容追加到文件內容的底部
footer_types MIME類型
默認值: footer_types: text/html
配置段: http, server, location
定義被追加底部文件的MIME返回類型,默認值是text/html



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涿州市| 浦江县| 赤壁市| 郎溪县| 红河县| 乌鲁木齐市| 洞口县| 阳西县| 阳山县| 仙桃市| 蚌埠市| 三河市| 巴南区| 左权县| 射阳县| 台北县| 镇远县| 迁安市| 鸡泽县| 都昌县| 崇左市| 石家庄市| 胶南市| 崇礼县| 阿克苏市| 炉霍县| 曲阜市| 综艺| 于都县| 阿尔山市| 宁海县| 永春县| 象州县| 容城县| 安国市| 都昌县| 江油市| 岳西县| 海原县| 连云港市| 哈巴河县|