摘要:調(diào)試的配置標(biāo)簽空格分隔調(diào)試配置注該文原文是默認(rèn),僅僅記錄標(biāo)準(zhǔn)錯(cuò)誤日志到默認(rèn)的文件中,或是被指令指定的文件中。重要對(duì)于配置文件的任何改變,你都必須測(cè)試和重載的配置文件來讓變更生效。將記錄最大的消息。
調(diào)試 Nginx 的配置
標(biāo)簽(空格分隔): Nginx 調(diào)試 Debuging 配置
注:該文原文是 Debugging Nginx Configuration
默認(rèn),Nginx 僅僅記錄標(biāo)準(zhǔn)錯(cuò)誤日志到 Nginx 默認(rèn)的 error 文件中,或是被 error_log 指令指定的文件中。
我們可以控制許多方面的錯(cuò)誤日志,這將幫助我們調(diào)試我們 Nginx 配置文件。
重要:對(duì)于 Nginx 配置文件的任何改變,你都必須測(cè)試和重載 Nginx 的配置文件來讓變更生效。在 Ubuntu 系統(tǒng),你可以簡(jiǎn)單的運(yùn)行 nginx -t && service nginx reload 命令。
在我們繼續(xù)進(jìn)行之前在你復(fù)制粘貼任何 Nginx 配置之前,確保你移除了你不想要的代碼。并且,每次你升級(jí) Nginx,也請(qǐng)使用最新版 Nginx 提供的更新你的配置文件。
在我們開始之前,請(qǐng)?jiān)敿?xì)閱讀這些官方文章:通常的 Nginx 陷阱,if 是惡魔,location 指令和 Nginx 請(qǐng)求過程。你可能會(huì)多帶帶使用它們來解決你的問題。
注:5 星推薦上面的幾篇官方文章。
好吧,看起來你需要一些嚴(yán)謹(jǐn)?shù)恼{(diào)試,讓我們開始!
僅僅調(diào)試 rewrite 規(guī)則大部分時(shí)間,你僅僅需要這個(gè),特別是當(dāng)你看見 404 或是不是期望的頁面的時(shí)候。
server { #other config error_log /var/logs/nginx/example.com.error.log; rewrite_log on; #other config }
rewrite_log 僅僅是一個(gè)標(biāo)志。當(dāng)打開它,它將發(fā)送所有的 rewrite 相關(guān)的日志信息到 error_log 文件中,使用 [notice] 級(jí)別。
因此,一旦你打開了它,在 error_log 中查看日志信息。
設(shè)置 Nginx 日志的調(diào)試級(jí)別下面的示例增加了 debug 級(jí)別,記錄在指定的路徑。
server { #other config error_log /var/logs/nginx/example.com.error.log debug; #other config }
debug 將記錄最大的消息。你可以在這里看到其他值
設(shè)置 Nginx 僅僅記錄來自于你的 IP 的錯(cuò)誤注意:在一個(gè)高流量的網(wǎng)站,不要忘記恢復(fù) error_log 日志的調(diào)試級(jí)別,error_log 可能會(huì)吃光你所有的可用磁盤空間,并引起服務(wù)器 crash。
當(dāng)你設(shè)置日志級(jí)別成 debug,如果你在調(diào)試一個(gè)在線的高流量網(wǎng)站的話,你的錯(cuò)誤日志可能會(huì)記錄每個(gè)請(qǐng)求的很多消息,這樣會(huì)變得毫無意義。
為了促使 Nginx 記錄僅僅來自于你的 IP 的錯(cuò)誤日志,添加以下行到配置文件 /etc/nginx/nginx.conf 的 events{..} 。
確保使用你自己的公網(wǎng) IP 替換 1.2.3.4,你可以在這里找到你的公網(wǎng) IP。
events { debug_connection 1.2.3.4; }
你可以在這里查看更多的細(xì)節(jié)。
Nginx 的 Location 指定錯(cuò)誤日志在 Nginx 中,我們使用 location{..}。
為了調(diào)試一個(gè)應(yīng)用的部分,你可以在一個(gè)或多個(gè) location{..} 中指定 error_log 指令。
server { #other config error_log /var/logs/nginx/example.com.error.log; location /admin/ { error_log /var/logs/nginx/admin-error.log debug; } #other config }
以上將僅僅調(diào)試你應(yīng)用的 /admin/ 部分,錯(cuò)誤日志將被記錄到一個(gè)不同的文件中。
你可以組合使用 debug_connection 和 error_log 來獲取更多的控制調(diào)試日志。
使用 Nginx 的 HttpEchoModule 模塊調(diào)試HttpEchoModule 是一個(gè)獨(dú)立的 Nginx 模塊,它可以幫助你完全以不同的方式調(diào)試。這個(gè)模塊默認(rèn)沒有被 Nginx 綁定。
你需要重新編譯 Nginx 來使用這個(gè)模塊。對(duì)于 Ubuntu 用戶,這是一個(gè)快速啟動(dòng)倉庫。
我最近在使用它,我還用它來調(diào)試項(xiàng)目。當(dāng)我做完的時(shí)候,我將寫一篇文章詳細(xì)講述。
為 Nginx 的配置使用 Perl/Lua 語言如果你仍然有困難的時(shí)間,并且你定期配置你的 Nginx,應(yīng)該考慮使用其他語言來處理你的 Nginx 配置。
這里有關(guān)于 Perl 語言 和 Lua 語言的 Nginx 模塊。
我非常不善于學(xué)習(xí)新的語言,不會(huì)有太多的機(jī)會(huì)寫更多關(guān)于這方面的東西,但是如果你知道或是可以非常容易學(xué)習(xí) Perl/Lua,這會(huì)非常有趣。
擴(kuò)展閱讀
How Nginx’s location-if works!
Maintaining, Optimizing & Debugging WordPress-Nginx Setup
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39091.html
摘要:與協(xié)同工作原理首先,的轉(zhuǎn)發(fā)端口與的監(jiān)聽端口需一致。然后將請(qǐng)求映射成請(qǐng)求,通過對(duì)應(yīng)端口向發(fā)送。獲取并處理請(qǐng)求后,通過對(duì)應(yīng)端口反饋給處理后的數(shù)據(jù),將數(shù)據(jù)輸出到瀏覽器,一次請(qǐng)求結(jié)束。 A. nginx 與 php 協(xié)同工作原理: 首先,nginx 的轉(zhuǎn)發(fā)端口 與 php 的監(jiān)聽端口需一致。然后 nginx 將 http 請(qǐng)求映射成 fastcgi 請(qǐng)求,通過對(duì)應(yīng)端口向 php 發(fā)送。php ...
摘要:與協(xié)同工作原理首先,的轉(zhuǎn)發(fā)端口與的監(jiān)聽端口需一致。然后將請(qǐng)求映射成請(qǐng)求,通過對(duì)應(yīng)端口向發(fā)送。獲取并處理請(qǐng)求后,通過對(duì)應(yīng)端口反饋給處理后的數(shù)據(jù),將數(shù)據(jù)輸出到瀏覽器,一次請(qǐng)求結(jié)束。 A. nginx 與 php 協(xié)同工作原理: 首先,nginx 的轉(zhuǎn)發(fā)端口 與 php 的監(jiān)聽端口需一致。然后 nginx 將 http 請(qǐng)求映射成 fastcgi 請(qǐng)求,通過對(duì)應(yīng)端口向 php 發(fā)送。php ...
摘要:最近做項(xiàng)目,遇到單點(diǎn)登錄,方法是在前端做代理。調(diào)通之后開始思考如何在本地開發(fā)環(huán)境調(diào)試單點(diǎn)登錄這一功能。 最近做項(xiàng)目,遇到單點(diǎn)登錄,方法是在前端做nginx代理。應(yīng)用系統(tǒng)需要配合做如下調(diào)整:1、使用*.頂級(jí)域名訪問,確??梢院蚄AM共享cookie2、對(duì)來自Nginx代理的訪問放開登錄認(rèn)證(安全起見,對(duì)來自其他IP的訪問應(yīng)該禁止)3、應(yīng)用系統(tǒng)從請(qǐng)求頭kam_remote_user中讀取登...
摘要:微信分享在本地調(diào)試的時(shí)候會(huì)出現(xiàn)域名無效的報(bào)錯(cuò)所以配置了一個(gè)在微信開發(fā)者工具中調(diào)試首先聲明我是系統(tǒng)在文件夾下更改文件在最后一行添加上這里是你想配置的域名然后安裝更改文件夾下的你代理的本地這樣保存后我是項(xiàng)目需要在項(xiàng)目中設(shè)置然后重新啟 微信分享在本地調(diào)試的時(shí)候會(huì)出現(xiàn)域名無效的報(bào)錯(cuò):errMsg:config:fail,Error: invalid url domain所以配置了一個(gè)nginx...
摘要:微信分享在本地調(diào)試的時(shí)候會(huì)出現(xiàn)域名無效的報(bào)錯(cuò)所以配置了一個(gè)在微信開發(fā)者工具中調(diào)試首先聲明我是系統(tǒng)在文件夾下更改文件在最后一行添加上這里是你想配置的域名然后安裝更改文件夾下的你代理的本地這樣保存后我是項(xiàng)目需要在項(xiàng)目中設(shè)置然后重新啟 微信分享在本地調(diào)試的時(shí)候會(huì)出現(xiàn)域名無效的報(bào)錯(cuò):errMsg:config:fail,Error: invalid url domain所以配置了一個(gè)nginx...
閱讀 637·2023-04-26 01:53
閱讀 2762·2021-11-17 17:00
閱讀 2897·2021-09-04 16:40
閱讀 1999·2021-09-02 15:41
閱讀 848·2019-08-26 11:34
閱讀 1236·2019-08-26 10:16
閱讀 1344·2019-08-23 17:51
閱讀 834·2019-08-23 16:50