Nginx 常見問題整理

1执赡、Nginx 常見問題

  • 1首懈、相同server_name多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問

    • 根據(jù)文件名順序優(yōu)先讀取。使用ip訪問的時(shí)候,也是根據(jù)文件名順序優(yōu)先讀取。
  • 2、location匹配優(yōu)先級(jí)

    • = 進(jìn)行普通字符精確匹配揭鳞,也就是完全匹配。
    • ^ ~ 表示普通字符匹配扶镀,使用前綴匹配鹦马。
    • ~ \~* 表示正在執(zhí)行一個(gè)正則匹配();
    • ~* :為不區(qū)分大小寫匹配(可用正則表達(dá)式)
    • ~ :為區(qū)分大小寫匹配(可用正則表達(dá)式)
    • root目錄下邊添加 code1 , code2, code3三個(gè)文件夾场仲。每個(gè)文件夾中存放一個(gè)html文件,并做不同的標(biāo)記燕差。

    • 此時(shí)重啟Nginx,然后訪問https://www.heartmusicbeat.com/code1, 此時(shí)將會(huì)返回 code1所在的文件的html文件。

    • 然后注釋掉第一個(gè)精確匹配的location,再訪問 https://www.heartmusicbeat.com/code1 蹋辅,此時(shí)將返回code2所在的文件的html文件。由此可見,即使正則匹配到了支竹,但是依舊會(huì)向下執(zhí)行,匹配優(yōu)先級(jí)更高的扯罐。

    • 然后注釋掉第三個(gè)匹配的location再訪問 https://www.heartmusicbeat.com/code1示辈,此時(shí)將會(huì)返回 code3所在的文件的html文件。

  • 3、try_files使用

    • try_files的作用

      • 按順序檢查文件是否存在请敦。

4、alias和root的使用區(qū)別

    1. 使用 alias 時(shí)唬血,目錄名后面一定要加” /”
    1. alias 可以指定任何名稱
    1. alias 在使用正則匹配時(shí)芦疏,必須捕捉要匹配的內(nèi)容并在指定的內(nèi)容處使用薪捍。
    1. alias 只能位于 location 塊中溉潭。

5、如何傳遞用戶的真實(shí)IP地址

  • 場(chǎng)景如下:
    假設(shè)用戶經(jīng)過多層代理訪問后端服務(wù)腰埂,其實(shí)我們是不知道用戶真實(shí)的IP地址的驴一。
    那么我們需要和第一級(jí)代理約定,需要在頭信息中加上對(duì)應(yīng)的IP地址信息孝情,那么后續(xù)的傳遞都將含有用戶真實(shí)的IP。

6低矮、Nginx 常見的錯(cuò)誤碼

  • 403錯(cuò)誤

    • 403是很常見的錯(cuò)誤代碼,一般就是未授權(quán)被禁止訪問的意思叮贩。

    • 可能的原因有兩種:

      • Nginx程序用戶無(wú)權(quán)限訪問web目錄文件
      • Nginx需要訪問目錄,但是autoindex選項(xiàng)被關(guān)閉
    • 修復(fù)方法:

      • 授予Nginx程序用戶權(quán)限讀取web目錄文件
      • 設(shè)置autoindex目錄為on
  • 413錯(cuò)誤

    • 在上傳時(shí)Nginx返回了413錯(cuò)誤:“413 Request Entity Too Large”益老,這一般就是上傳文件大小超過Nginx配置引起彪蓬。

    • 修復(fù)方法:

      • 在Nginx.conf增加client_max_body_size的設(shè)置,這個(gè)值默認(rèn)是1M捺萌,可以增加到8M以提高文件大小限制档冬;
      • 如果運(yùn)行的是php,那么還要檢查php.ini桃纯,這個(gè)大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大酷誓,這樣就不會(huì)因?yàn)樘峤粩?shù)據(jù)大小不一致出現(xiàn)的錯(cuò)誤。
  • 502錯(cuò)誤

    • Nginx 502 Bad Gateway的含義是請(qǐng)求的PHP-CGI已經(jīng)執(zhí)行态坦,但是由于某種原因(一般是讀取資源的問題)沒有執(zhí)行完畢而導(dǎo)致PHP-CGI進(jìn)程終止盐数。一般來說Nginx 502 Bad Gateway和php-fpm.conf的設(shè)置有關(guān)。
    • 修復(fù)方法:
      • 1伞梯、查看FastCGI進(jìn)程是否已經(jīng)啟動(dòng)
      ps -aux | grep php-cgi
      
      • 2玫氢、檢查系統(tǒng)Fastcgi進(jìn)程運(yùn)行情況
  • 除了第一種情況,fastcgi進(jìn)程數(shù)不夠用谜诫、php執(zhí)行時(shí)間長(zhǎng)漾峡、或者是php-cgi進(jìn)程死掉也可能造成Nginx的502錯(cuò)誤。

  • 運(yùn)行以下命令判斷是否接近FastCGI進(jìn)程喻旷,如果fastcgi進(jìn)程數(shù)接近配置文件中設(shè)置的數(shù)值生逸,表明worker進(jìn)程數(shù)設(shè)置太少。
netstat -anpo | grep "php-cgi" | wc -l
  • 3、FastCGI執(zhí)行時(shí)間過長(zhǎng)

    • 根據(jù)實(shí)際情況調(diào)高以下參數(shù)值
  • 504錯(cuò)誤

  • Nginx 504 Gateway Time-out的含義是所請(qǐng)求的網(wǎng)關(guān)沒有請(qǐng)求到槽袄,簡(jiǎn)單來說就是沒有請(qǐng)求到可以執(zhí)行的PHP-CGI伟阔。

  • Nginx 504 Gateway Time-out一般與Nginx.conf的設(shè)置有關(guān)。

  • 頭部太大這種情況可能是由于Nginx默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)太小造成的掰伸, 這將導(dǎo)致fastcgi進(jìn)程被掛起,如果你的fastcgi服務(wù)對(duì)這個(gè)掛起處理的不好怀估,那么最后就極有可能導(dǎo)致504 Gateway Time-out狮鸭。

  • 默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)是8K,可以調(diào)大以下參數(shù):

  • 此外多搀,也可能是php-cgi的問題歧蕉,需要修改php.ini的配置:

  • 將max_children由之前的10改為30,這樣操作是為了保證有充足的php-cgi進(jìn)程可以被使用康铭。

  • 將request_terminate_timeout由之前的0秒改成60秒惯退,這樣使php-cgi進(jìn)程處理腳本的超時(shí)時(shí)間提高到60秒,可以防止進(jìn)程被掛起以提高利用效率从藤。

nginx “403 Forbidden” 錯(cuò)誤的原因及解決辦法

user root owner;

微信掃碼關(guān)注java架構(gòu)催跪,獲取Java面試題和架構(gòu)師相關(guān)題目和視頻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夷野,一起剝皮案震驚了整個(gè)濱河市懊蒸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悯搔,老刑警劉巖骑丸,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異妒貌,居然都是意外死亡通危,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門灌曙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菊碟,“玉大人,你說我怎么就攤上這事平匈】蚬担” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵增炭,是天一觀的道長(zhǎng)忍燥。 經(jīng)常有香客問我,道長(zhǎng)隙姿,這世上最難降的妖魔是什么梅垄? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上队丝,老公的妹妹穿的比我還像新娘靡馁。我一直安慰自己,他們只是感情好机久,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布臭墨。 她就那樣靜靜地躺著,像睡著了一般膘盖。 火紅的嫁衣襯著肌膚如雪胧弛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天侠畔,我揣著相機(jī)與錄音结缚,去河邊找鬼。 笑死软棺,一個(gè)胖子當(dāng)著我的面吹牛红竭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喘落,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼茵宪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了瘦棋?” 一聲冷哼從身側(cè)響起眉厨,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兽狭,沒想到半個(gè)月后憾股,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箕慧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年服球,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颠焦。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斩熊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伐庭,到底是詐尸還是另有隱情粉渠,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布圾另,位于F島的核電站霸株,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏集乔。R本人自食惡果不足惜去件,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尤溜,春花似錦倔叼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至授霸,卻和暖如春肥印,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绝葡。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腹鹉,地道東北人藏畅。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像功咒,于是被迫代替她去往敵國(guó)和親愉阎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理力奋,服務(wù)發(fā)現(xiàn)榜旦,斷路器,智...
    卡卡羅2017閱讀 134,693評(píng)論 18 139
  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user景殷,其語(yǔ)法格式為: use...
    吃瓜的東閱讀 4,506評(píng)論 0 41
  • 1.ngnix介紹 ngnix www服務(wù)軟件 俄羅斯人開發(fā) 開源 性能很高 本身是一款靜態(tài)WWW軟件 靜態(tài)小文件...
    逗比punk閱讀 2,099評(píng)論 1 6
  • I/O模型Nginx介紹Nginx的安裝和目錄結(jié)構(gòu)Nginx的配置Nginx的編譯安裝 一溅呢、I/O模型 (一)I/...
    哈嘍別樣閱讀 895評(píng)論 0 4
  • 對(duì)于mysql connector的jar包 5.1.7以后的 可以在jdbc url中增加rewriteBatc...
    語(yǔ)文報(bào)閱讀 1,900評(píng)論 0 49