成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx配置如何解決瑣碎標簽問題

開發 前端
Nginx配置服服務器的時候有不少的問題阻礙著我們的工作進行。尤其是ssi標簽中出錯是很常見的。接下來我們就看看有關Nginx配置的知識。

Nginx配置在進行Web服務器配置的時候有很多問題困擾著我們。其中ssi標簽寫錯而ssi定義config errmsg為空字符串時,Nginx配置會出現empty reply,接下來我們就看看Nginx配置的相關問題。

如果ssi機器前面有Nginx代理,代理會打印error_log,并認為這臺ssi的機器故障并屏蔽之。在我的環境中,因為代理upstream中使用了max_fails=0這個參數,這個錯誤不會使Nginx屏蔽掉后端,但Nginx配置出現死循環,負載升高,***死機。重現此bug:書寫一個有錯誤的,而且用了errmsg為空的html文件。aaa可以看到include中用的引號不小心打成了中文字符,人工去書寫include語句這種錯誤是很難避免的。訪問一下這個html,出現Empty reply from server。

  1. curl -i http://127.0.0.1/test.html  
  2. curl: (52) Empty reply from server 

本來這樣定義errmsg是希望出錯的ssi語句這一段不顯示任何東西,所以這里應該顯示aaa,但Nginx配置顯然是出錯了。針對這個問題有幾種方案去解決:

1、換用apache,apache沒有這個問題。

2、讓編輯工作細心再細心,不要寫錯ssi標簽。

3、將error_log整理后實時發給相關人員處理,或直接刪掉該頁。

4、Nginx修正bug。

換用apache的話,雖然解決了bug,但apache本身性能不夠,而且要重新書寫、測試配置;讓編輯細心這個一直都要求,但人總歸是人;整理error_log這個恐怕是來不及,死機的速度總是很快,死循環有可能在幾秒鐘之內就殺死了Nginx代理;所以***只能通過修改Nginx源碼,把這個bug修復,最為妥善。經測試發現,如果不寫errmsg標簽,或者errmsg值不為空的話,這個bug是不存在的,只是在errmsg為空字符串時有,所以想辦法讓errmsg永不為空字符串就可以了。這樣的修復方式是回避問題型思路,事實上真正的bug還是存在的,只是把觸發它的因素干掉了,那這個bug就不會出來害人。因為真正的bug并沒有消除,所以下次碰到一個更特殊的情況,這個bug或許還會出現的。

修改Nginx配置源碼目錄中src/http/modules/ngx_http_ssi_filter_module.c這個文件,在代碼的2247行(0.7.59版,0.6.36版是2300行),有一個:

  1. if (value) {  
  2. ctx->errmsg = *value;  

這句話的意思是,如果errmsg不是null,意味著有寫config errmsg這句配置,那就把config errmsg傳到ctx類中去。但是這行話沒有判斷value是不是一個空字符串,所以多加一個判斷:

  1. if (ctx->errmsg.len == 0)  
  2. {  
  3. ctx->errmsg.len = 1;  
  4. ctx->errmsg.data = (u_char *)  
  5. " ";  

因為c語言不過關,所以幾行是從Nginx配置的代碼里東湊西拼的一句話,空字符串就是字符串長度為零,如果errmsg長度為零的話,就把errmsg變成一個空格。改完之后,make install,重啟一下Nginx訪問,現在不會出現Empty reply,在出錯的位置會打印一個空格,在一般的html里,多打一個空格不會有特別大的危害。

【編輯推薦】

  1. 將Nginx同時作為負載均衡和Web緩存服務器
  2. 20個Nginx Web服務器***安全實踐
  3. python編程在Nginx中的使用方法
  4. 安裝Ubuntu Nginx及其配置安裝Php和mysql
  5. Ubuntu Nginx安裝編譯mono 2.0
責任編輯:張浩 來源: IT168
相關推薦

2012-09-05 11:09:15

SELinux操作系統

2010-04-29 17:46:31

Oracle死鎖

2024-07-11 08:36:47

Nginx端口服務器

2011-08-29 10:34:00

網絡安全云安全云計算

2023-10-30 18:35:47

MySQL主從延時

2021-06-06 13:05:15

前端跨域CORS

2011-03-23 14:42:47

CPU過度消耗

2017-10-17 09:21:06

2010-07-16 13:52:26

telnet漏洞

2017-07-20 07:30:16

大數據數據互聯網

2024-10-29 16:41:24

SpringBoot跨域Java

2013-05-21 10:49:59

Windows硬件沖突

2013-10-30 17:34:51

Nginx服務器軟中斷XEN虛擬

2014-06-11 09:34:22

vSphere虛擬機

2024-11-21 16:47:55

2009-12-10 14:19:41

配置靜態路由

2020-06-29 15:03:34

遠程工作網絡安全網絡攻擊

2019-11-26 14:30:20

Spring循環依賴Java

2020-04-24 16:01:26

物聯網數據IOT

2017-08-02 15:51:24

PHP中文亂碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91九色porny首页最多播放 | 久久久精品网站 | 国产成人综合在线 | 国产成人麻豆免费观看 | 99爱在线免费观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 91在线精品视频 | 亚洲风情在线观看 | 高清久久久| 欧美国产日韩在线观看 | 日日操日日舔 | 一本一道久久a久久精品综合蜜臀 | 亚洲欧美一区二区三区国产精品 | 在线观看成人精品 | 久草在线| 少妇一区在线观看 | 国产成人精品免费 | 国产综合精品 | 国产成人精品一区 | 日韩在线精品 | 卡通动漫第一页 | 日韩欧美一区二区三区免费看 | av在线视 | 亚洲成人av一区二区 | 99精品久久久国产一区二区三 | 先锋资源网站 | 欧美高清一区 | 91在线视频免费观看 | 久久9精品 | 黄色免费av| 黄色大片在线免费观看 | 久久精品一区二区三区四区 | 蜜桃av鲁一鲁一鲁一鲁 | 久在线观看 | 亚洲精品久久久久久宅男 | 精精国产xxxx视频在线播放7 | 美女视频网站久久 | h片在线观看免费 | 日本天天色 | 成人免费在线视频 | 在线色网站 |