1. 程式人生 > >記錄一次nginx+uwsgi伺服器部署出現的502錯誤

記錄一次nginx+uwsgi伺服器部署出現的502錯誤

在重新部署一臺伺服器的時候遇到一個問題,新手嘛,以前沒搞過,確實糾結了一下。記錄下此問題,方便以後檢視。

錯誤描述:

網頁開啟顯示的是502錯誤,檢視/var/log/nginx/error.log 出現很多類似*3 upstream prematurely closed connection while reading response header from upstream, client *.*.*.*, server ***.com, request:....的錯誤

又查看了/var/log/uwsgi/uwsgi.log日誌 ,記錄顯示每次請求都會出現-- unavailable modifier requested: 0--錯誤

錯誤原因分析:

作為一個菜鳥,看到這篇文章分析的不錯,貼在這裡

前幾天看見linode的郵件,說是伺服器要維護,要進行伺服器的遷移,但是資料和ip都不變,好吧,我就點了確定後沒當個事。第二天掛伺服器翻牆不行了,再一看網站500了,呵呵,確實是遷移出問題了. 
那麼就開始排查唄,首先是看nginx服務狀態是正常的,那麼再看nginx的錯誤日誌吧,直接寫著是:

2013/07/19 07:59:36 [error] 2029#0: *785 connect() failed (111: Connection refused) while connecting to upstream, client: 123.125.116.232, server: lidongbest5.com, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:9090", host: "lidongbest5.com"
這個直接請求被拒絕了,因為是用的是Nginx+uwsgi,那麼應該是uwsgi的問題吧。
然後執行netstat -lnp | grep 9090,果然發現uwsgi的9090埠沒有在執行,然後一看uwsgi就沒有啟動,好吧,啟動wusgi,再看9090埠執行中。。。
再次訪問,發現還是500,這時報錯:
2013/07/19 08:12:18 [error] 2029#0: *791 upstream prematurely closed connection while reading response header from upstream, client: 123.125.116.232, server: lidongbest5.com, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:9090", host: "lidongbest5.com"
這個錯誤我就沒有什麼頭緒了,然後就網上各種搜,有的說是nginx負載過高,導致timeout沒返回,有的說是header響應頭的空格的問題,反正是說什麼的都有,好吧,負載過高的話就在nginx里加些配置吧,重啟nginx後還是不行,這時感覺到是不是有些服務沒啟動所以才導致沒返回。這時就開始排查,然後通過檢視/etc/rc.d/init.d/mysqld status,顯示mysql 停止,好吧,原來問題是出在這啊,這時使用命令service mysqld start啟動mysql,好吧,沒問題了。 
通過這個問題有些感想,千萬不能著急,要慢慢排查,500不一定就是Nginx的問題,要通過error_log來檢視問題,先排查一下自己程式呼叫的服務是否開啟。

解決:

伺服器在/etc/rc.local檔案中設定了自動啟動uwsgi服務,在啟動的時候加一個引數 --plugin python,重啟一下就OK了。

參看


相關推薦

記錄nginx+uwsgi伺服器部署出現502錯誤

在重新部署一臺伺服器的時候遇到一個問題,新手嘛,以前沒搞過,確實糾結了一下。記錄下此問題,方便以後檢視。 錯誤描述: 網頁開啟顯示的是502錯誤,檢視/var/log/nginx/error.log 出現很多類似*3 upstream prematurely closed

記錄Google雲伺服器上Redis的安裝配置

Redis安裝 安裝方式一: 通過yum install -y redis 安裝方式二: 在確認安裝了wget的前提下執行命令wget http://download.redis.io/releases/redis-4.0.11.tar.gz可以將redis-4

記錄nginx php-fpm環境搭建

為了測試bug,好久不搭環境的我又一次走上不歸路,在此記錄。 我用的parallel desktop上的centos7 裝系統還是很好裝的,先新增源 rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epe

記錄 Nginx 配置 proxy_pass 後 返回404問題

## 一、 Nginx 配置 proxy_pass 後 返回404問題 故障解決和定位 ### 1.1、 問題 在一次生產涉及多次轉發的配置中, 需求是下面的圖: ![image](https://djxblog.oss-cn-shenzhen.aliyuncs.com/picture/Nginx/proxy

記錄解決httpcline請求https報handshake_failure錯誤

HttpClient如何指定Ciphe handshake_failure SSL_ERROR_WEAK_SER httpclinet發起https請求 概述 當使用httpclinet發起https請求時報如下錯誤: javax.net.ssl.SSLHandshakeException:

記錄vue-cli專案上線到阿里雲並配置Nginx伺服器的經歷

首先,買一臺雲伺服器是必要的,我使用的是阿里雲伺服器CentOS 7.4 64位作業系統。 在整個vue-cli專案上線過程中,我遇到了很多問題。不過,最終圓滿解決了,因此在這裡記錄一下。 遇到的問題: 雲伺服器連線 vue專案打包上線 nginx安裝配置 雲

【20180719】記錄MariaDB主從復制由於tokudb出現主鍵1062錯誤問題

-h prepare prev ria tree 時間比較 make poi lin 記一次MariaDB主從復制的搭建 環境: 系統: CentOS release 6.3 內核: 2.6.32-431.23.3.el6.centos.plus.x86_64 數據庫版本

記錄SpringBoot打成war包部署到tomcat啟動報錯

tar oca sep localhost ring ant boot exc RoCE 啟動時,報錯信息如下: 28-Sep-2018 16:55:41.567 嚴重 [localhost-startStop-1] org.apache.catalina.core.Sta

記錄異常 出現不支持的 SQL92 標記: 70

錯誤 don 技術 提示 png myba 支持 數據庫 bat MVC加mybatis的項目,調用一個接口時報錯提示如下 查了下具體執行的SQL 看了下沒發現問題,然後復制去數據庫中執行,沒問題,正常執行了 然後懷疑傳參有問題,將參數寫死再試...還是不行 最後度娘一

Nginx+uWSGI+Django部署web伺服器

一.搭建專案     1.建立一個虛擬環境         建議個人學習和測試的話,直接建在 /home/ubuntu/使用者/ 目錄下, virtualenv -p python3 py

利用uWSGInginx進行伺服器部署

搭建伺服器虛擬環境 1)在本機進入虛擬環境,執行命令匯出當前需要的所有包。 pip freeze > plist.txt 2)通過ftp軟體將專案程式碼和plist.txt檔案上傳到伺服器。 3)建立虛擬環境,在虛擬環境上安裝

記錄mysql由5.6升級到5.7出現的異常---Expression #23 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'c.commentCount' which is

### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #23 of SELECT list is not in GROUP BY clause an

記錄基於vue、typescript、pwa的專案由開發到部署

前言 最近秋招之餘空出時間來按自己的興趣動手做了一個專案,一個基於vue,typescript,pwa的實驗瀏覽移動端webapp,現在趁熱打鐵,將這個專案從開發到部署整個過程記錄下來,並將從這個專案中學習到的東西分享出來,如果大家有什麼意見或補充也可以在評論區提出

記錄伺服器關機造成的Git服務異常

  環境:Ubuntu 16.04 、Git 2.7.4 事情原因:之前公司使用的是SVN版本控制器,後來,因為分支的需求,所以搭建了Git; 今天早上因為Git伺服器上tomcat服務出現異常,需要手動重啟伺服器;所以,同事手動重啟了伺服器;但是恰巧剛好另一個同事,正在pus

nginx部署Vue靜態頁面

前言 用Vue寫了個部落格,第一次打包後正式部署到伺服器上,將其中遇到的問題,及參考的資料分享一下。 伺服器準備 本次部署使用的阿里雲的ecs雲伺服器,系統為ubuntu16.04,由於購買的香港地區的伺服器,因此無需備案。使用香港伺服器有以下優缺點: 優點

硬體運維:記錄伺服器電源模組坑成狗的案例

事由 今天開始,逐步把硬體運維過程中遇到的坑整理成公眾號文章,以便踩到坑的人共勉,也給還沒踩到坑的人一個提醒。至於這款電源模組,反正我已經被這款電源模組(這裡說的艾默生電源PH-79RDR指的是DELL PC伺服器使用的電源模組)坑過N回了,總體總結成3類問題 問題1 :PH-79RDR在低版

記錄坑經歷】axios使用x-www-form-urlencoded 伺服器報400(錯誤的請求。 )(後端.Net MVC5 WebApi OAuth,前端Electron-Vue)

首先放上原始碼 electron-vue axios 註冊 axios.defaults.baseURL = 'http://localhost:8888/' axios.defaults.headers.post['Content-Type'] = 'applicatio

記錄令人心碎的 elasticsearch5.6 伺服器的搭建

前言:      最近想搭一個elasticsearch伺服器,因為之前用的是solr。這次想換個用用,沒想到在搭建的過程遇到兩個問題困擾我多時。 錯誤1: max file descriptors [4096] for elasticsearch proc

Django專案部署:Nginx+uWSGI伺服器

         在Django專案的開發中,Django框架集成了開發者的伺服器,但是在實際生產環境中並不能作為網站的伺服器。專案開發完成,需要將它放到伺服器上,這個伺服器有固定的ip,通過域名繫結,瀏覽器在訪問域名時就可以通過DNS解析出對應的伺服器ip地址。伺服器分為

記錄使用DDNS通過域名訪問伺服器的過程

背景:因為筆記本配置較低,如果在本本上安裝一個oracle的話太影響計算機效能,但是又想在自己能帶著走的筆記本上隨時可以程式設計。所以,我在自己家裡配置較高的桌上型電腦上使用vmware安裝了兩臺虛擬機器伺服器,分別是windows server 2012的系統