3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
透過 mod_log_forensic 記錄 HTTP Request Header 最近解一個 Bug 用到了 Apache Header Log,順便記錄一下。這個精美的 Bug 在程式流程無法在腦袋中就發現問題,也剛好這個問題又是來自第三方的 HTTP 呼叫,也很難自己模擬複製問題。 一般碰到程式邏輯無法解決的問題,就會往底層找。直接調閱網路封包是一個好方法,HTTP Debug 之前常用 tcpdump 來關看封包內容,但是這一次剛好遇到 HTTPS 的環境,在沒有辦法建立 HTTP Proxy 的辦法下只好先由 Log 下手。 想法是觀測 HTTP Header 來模擬問題,由於 Apache 預設的 Access Log 沒有提供足夠的資訊,於是安裝了 mod_log_forensic Apache Module,安裝方法很簡單,如下: a2enmod log_forensic 然後在要開啟 Log 的 VirtualHost 設定檔加入 ForensicLog,如下: 1 2 3 4 5 6 7 8 9 10 <VirtualHost *:443>   ...   # 加上 ForensicLog ForensicLog /var/log/apache2/forensic_log   ...   </VirtualHost> 重新啟動 Apache2 service apache2 restart 等待連線進來以後就可以看到 Log 囉 tail -f /var/log/apache2/forensic_log Header Log 如下,每一個「|」分割了 HTTP Header 中的每一行,可以忠實呈現原貌: 1 2 +18091:5d960d63:2|GET /css/font-awesome/all.min.css HTTP/1.1|Host:toright.com|Connection:keep-alive|Sec-Fetch-Mode:no-cors|User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36|Accept:text/css,*/*;q=0.1|Sec-Fetch-Site:same-origin|Referer:https://toright.com/|Accept-Encoding:gzip, deflate, br|Accept-Language:zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6,gl;q=0.5,tr;q=0.4|Cookie:point-sid=2c0g8k6t6ael9lkvivlohd8cu2; _ga=GA1.2.1342953514.1566138997; _fbp=fb.1.1566138997390.888811243|If-None-Match:"c80f-591395c596fab-gzip"|If-Modified-Since:Thu, 29 Aug 2019 03:47:12 GMT -18091:5d960d63:2 最後 Bug 當然是解了囉,趕快記錄一下方法。下次見....... 分享到 Twitter(在新視窗中開啟) 按一下以分享至 Facebook(在新視窗中開啟) 分享到 LinkedIn(在新視窗中開啟) 點這裡寄給朋友(在新視窗中開啟) 按一下即可分享至 Skype(在新視窗中開啟) 分享到 Reddit(在新視窗中開啟) 分享到 Tumblr(在新視窗中開啟) 按一下以分享到 Telegram(在新視窗中開啟)

本文由toright提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦