nginx error: upstream prematurely closed connection while reading response header from upstream

來源:互聯網
上載者:User

標籤:解決   尋找   文章   沒有   服務   str   time   開啟   php   

本篇文章由:http://xinpure.com/nginx-error-upstream-prematurely-closed-connection-while-reading-response-header-from-upstream/

環境描述

Nginx 版本 1.10.2

PHP 版本 7.0.12

Node 版本 5.9.0

本文是想講一個 Nginx 的錯誤,為啥還要提及 PHP 和 Node 的版本呢?容我先還原一下應用情境

首先就是我有一個綁定在 3000 連接埠的 Node Server

我需要從 80 連接埠直接存取這個服務,所以我使用了 Nginx 的反向 Proxy

而至於 PHP ,其實這個錯誤就是與它有關

尋找錯誤原因

當我使用這個 Node Server 的時候,返回了一個 502 Bad Gateway 錯誤

查看網路請求,也沒有什麼錯誤,接著就查看了 Nginx error log 裡的錯誤資訊

[error] 17028#0: *111 upstream prematurely closed connection while reading response header from upstream

好吧,並不是什麼明顯的錯誤提示,只好到 Google 查查看了

查了一番似乎也挺多人遇到這個問題的,但是解決問題的方法好像都不一樣。。。

有的說是 keepalive_timeout 值太小了 (這個值我根據服務配置,已經改成 600,感覺不太可能),還有說重啟 Nginx 就行了 (嘗試過。),等等。。。

當然也有讓我眼前一亮的答案,那就是 重啟 php-fpm ,果斷嘗試一下

果然。。。啟動報錯了,提示大概意思是連接埠被佔用了,瞬間感覺好像找對了突破口

解決錯誤

看了一下連接埠才發現,原來是之前已經開啟了另外一個 Node Server 佔用了 php-fpm 預設的 9000 連接埠

簡直是自己坑自己!

因為服務的連接埠不能改,要和其它同事的統一,所以我把 php-fpm 的連接埠改成了 9999

PHP 是使用 brew 安裝的,配置路徑為: /usr/local/etc/php/7.0/php-fpm.d/www.conf

listen = 127.0.0.1:9999

然後重啟 php-fpm 就 OK 了

nginx error: upstream prematurely closed connection while reading response header from upstream

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.