nginx反向代理墅诡,safari無法訪問網(wǎng)站(HTTP/2.0請求超時(shí))的解決辦法壳嚎。

一、問題

IOS 開發(fā)使用 NSURLconnection 發(fā)送 HTTP POST請求的時(shí)候末早,一直timeout烟馅。

繼而發(fā)現(xiàn)safari無法訪問網(wǎng)站,但是chrome和其他的瀏覽器都沒有任何問題然磷。

提前說一下郑趁,這個(gè)問題出現(xiàn)在** ngixn-1.9.0+/apache2.4 **的反向代理上

我的服務(wù)器是 LANMP 組合的,其中 nginx 版本是 1.12.0 姿搜,而apache的版本是 2.4

二寡润、排查過程

1. 檢查服務(wù)器通訊和網(wǎng)絡(luò)原因

首先發(fā)現(xiàn)IOS端能夠ping通服務(wù)器,但是新問題出現(xiàn)了safari無法訪問網(wǎng)站舅柜,同樣的網(wǎng)站chrome中能夠訪問梭纹。

2. 客戶端排查

IOS客戶端開發(fā)者請求同樣的https API ,發(fā)現(xiàn)能夠拿到response致份,只有我的網(wǎng)站不行变抽。

3. 網(wǎng)站系統(tǒng)排查

試了好幾個(gè)API測試平臺以及各種瀏覽器,發(fā)現(xiàn)都沒有問題,最后發(fā)現(xiàn):

蘋果原生的應(yīng)用 如safari绍载,無論是 IOS 的 safari 還是 max osx 的 safari 都無法訪問網(wǎng)站

4. 排查SSL問題

因?yàn)槲矣玫氖?Let's Encrypt 的 SSL 證書太伊,因此測試了我其他使用SSL證書網(wǎng)站能否在 safari 中打開,發(fā)現(xiàn)都沒問題。

5. 進(jìn)一步排查網(wǎng)站系統(tǒng)

在排查過程中逛钻,發(fā)現(xiàn)當(dāng)訪問純靜態(tài)頁面僚焦,如 https://www.demo.com/index2.html 的時(shí)候,沒有任何問題曙痘,能夠正常訪問芳悲。

但是如果訪問動態(tài)頁面,如 https://www.demo.com/index2.php的時(shí)候边坤,都是錯(cuò)誤的名扛,也就是說 phpinfo() 都無法訪問。

因此感覺問題可能出現(xiàn)在 nginx 或者是 apache

6. 各種查資料

為此我在 segmentfault.com 上提問的問題也編輯了很多次茧痒,問清了IOS開發(fā)方面的一些概念后肮韧,最后確定了問題出現(xiàn)服務(wù)器方面。

所以在 stackoverflow 上各種關(guān)鍵字查旺订,主要查的是

  • nginx
  • safari can not open website

在一個(gè)提問中發(fā)現(xiàn)弄企,HTTP2可能存在問題,因此我看了一下我的網(wǎng)站的log区拳,nginx.logapache.log 我都配置了拘领。

不看不知道,嚇一跳:

1)demo.com_apache.log 中都是正常的200請求:

980871222-592a7c945d0c0_articlex.png

2)demo.com_nginx.log 中也都正常樱调,但是需要注意的是:

  1. 請求都是 HTTP/2.0 請求
  2. 訪問一次網(wǎng)站约素,會出現(xiàn)好幾十甚至一百次鏈接請求</red>(這個(gè)我把日志清空后,訪問一次笆凌,nginx訪問日志就出現(xiàn)了N多條)
  3. 請求都是200的
1.png

7. 確定了問題最終出現(xiàn)在nginx上面圣猎,而且是反向代理的問題。

三乞而、解決

前后折騰了將近一天送悔,最后在 stackoverflow 上找到了同樣的問題,問題說:

safari 因?yàn)槭褂肏TTP/2.0 請求而拿不到response

其中提到了我在別的問題中也看到的一個(gè)內(nèi)容晦闰,已經(jīng)有人在nginx中討論過這個(gè)問題:

【"Upgrade" header should not be proxied over h2】

隱藏 Nginx 的 Upgrade header

具體為什么放祟,可以去nginx上的討論看看鳍怨,很詳細(xì)呻右。

操作:

修改 nginx proxy配置中 proxy_hide_header 成 Upgrade

proxy_hide_header Upgrade
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鞋喇,隨后出現(xiàn)的幾起案子声滥,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件落塑,死亡現(xiàn)場離奇詭異纽疟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)憾赁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門污朽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人龙考,你說我怎么就攤上這事蟆肆。” “怎么了晦款?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵炎功,是天一觀的道長。 經(jīng)常有香客問我缓溅,道長蛇损,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任坛怪,我火速辦了婚禮淤齐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袜匿。我一直安慰自己床玻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布沉帮。 她就那樣靜靜地躺著锈死,像睡著了一般。 火紅的嫁衣襯著肌膚如雪穆壕。 梳的紋絲不亂的頭發(fā)上待牵,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音喇勋,去河邊找鬼缨该。 笑死,一個(gè)胖子當(dāng)著我的面吹牛川背,可吹牛的內(nèi)容都是我干的贰拿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼熄云,長吁一口氣:“原來是場噩夢啊……” “哼膨更!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缴允,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤荚守,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矗漾,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锈候,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敞贡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泵琳。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖誊役,靈堂內(nèi)的尸體忽然破棺而出虑稼,到底是詐尸還是另有隱情,我是刑警寧澤势木,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布蛛倦,位于F島的核電站,受9級特大地震影響啦桌,放射性物質(zhì)發(fā)生泄漏溯壶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一甫男、第九天 我趴在偏房一處隱蔽的房頂上張望且改。 院中可真熱鬧,春花似錦板驳、人聲如沸又跛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慨蓝。三九已至,卻和暖如春端幼,著一層夾襖步出監(jiān)牢的瞬間礼烈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工婆跑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留此熬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓滑进,卻偏偏與公主長得像犀忱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子扶关,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361