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

Nginx配置如何解決瑣碎標(biāo)簽問題

開發(fā) 前端
Nginx配置服服務(wù)器的時(shí)候有不少的問題阻礙著我們的工作進(jìn)行。尤其是ssi標(biāo)簽中出錯(cuò)是很常見的。接下來我們就看看有關(guān)Nginx配置的知識。

Nginx配置在進(jìn)行Web服務(wù)器配置的時(shí)候有很多問題困擾著我們。其中ssi標(biāo)簽寫錯(cuò)而ssi定義config errmsg為空字符串時(shí),Nginx配置會出現(xiàn)empty reply,接下來我們就看看Nginx配置的相關(guān)問題。

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

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

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

1、換用apache,apache沒有這個(gè)問題。

2、讓編輯工作細(xì)心再細(xì)心,不要寫錯(cuò)ssi標(biāo)簽。

3、將error_log整理后實(shí)時(shí)發(fā)給相關(guān)人員處理,或直接刪掉該頁。

4、Nginx修正bug。

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

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

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

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

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

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

【編輯推薦】

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

2012-09-05 11:09:15

SELinux操作系統(tǒng)

2010-04-29 17:46:31

Oracle死鎖

2024-07-11 08:36:47

Nginx端口服務(wù)器

2017-07-20 07:30:16

大數(shù)據(jù)數(shù)據(jù)互聯(lián)網(wǎng)

2024-10-29 16:41:24

SpringBoot跨域Java

2013-05-21 10:49:59

Windows硬件沖突

2024-11-21 16:47:55

2009-12-10 14:19:41

配置靜態(tài)路由

2011-08-29 10:34:00

網(wǎng)絡(luò)安全云安全云計(jì)算

2021-06-06 13:05:15

前端跨域CORS

2011-03-23 14:42:47

CPU過度消耗

2010-07-16 13:52:26

telnet漏洞

2023-10-30 18:35:47

MySQL主從延時(shí)

2017-10-17 09:21:06

2013-10-30 17:34:51

Nginx服務(wù)器軟中斷XEN虛擬

2009-09-21 17:10:14

struts Hibe

2011-09-05 13:32:56

2021-10-20 20:27:55

MySQL死鎖并發(fā)

2025-02-11 12:29:58

2019-07-30 08:28:44

VirtualBox橋接網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久蜜桃资源一区二区老牛 | www日本在线播放 | 精品国产亚洲一区二区三区大结局 | 亚洲成人午夜电影 | 天啪 | 免费视频成人国产精品网站 | dy天堂 | 久久精品亚洲国产 | 国产资源在线播放 | 国产福利二区 | 日韩成人精品在线观看 | 欧产日产国产精品视频 | 久久精品色欧美aⅴ一区二区 | 成人欧美一区二区三区黑人孕妇 | 国产中文字幕在线观看 | 成年人的视频免费观看 | 日韩一区二区在线视频 | 成人高清在线视频 | 国产精品乱码一区二三区小蝌蚪 | 国产午夜精品一区二区三区在线观看 | 在线免费激情视频 | 日韩欧美二区 | 亚洲第一女人av | 亚洲综合色网 | 久久久久久电影 | 久久国产精品视频免费看 | 欧美日韩专区 | 欧美国产日韩精品 | 成人小视频在线观看 | 鸡毛片 | 国产精品一区二区三区四区 | av黄在线观看 | 热99精品视频 | 一级黄色片美国 | 日韩在线精品视频 | 91精品国产高清一区二区三区 | 日本一区二区高清视频 | 精品1区2区| аⅴ资源新版在线天堂 | 国产精品免费一区二区三区四区 | 欧美日产国产成人免费图片 |