nginx 报错

upstream prematurely closed connection while reading response header from upstream

说明是上游服务器出现了问题

所以是uwsgi出现问题

uwsgi 报错

uwsgi -- unavailable modifier requested: 0

1. 解决办法一

此时uwsgi是用yum安装的

yum search vim uwsgi-plugin-python

找到对应版本的uwsgi-plugin-python,yum install一下

然后在ini文件中添加plugins = python,或者命令行添加–plugin python

比如我的python是python3.6.4

[root@localhost conf.d]# yum search vim uwsgi-plugin-python
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
=============================== N/S matched: vim ===============================
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib tests in
: VIM editor
fluxbox-vim-syntax.noarch : Fluxbox syntax scripts for vim
neovim.x86_64 : Vim-fork focused on extensibility and agility
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers
: descriptions
python2-neovim.noarch : Python client to Neovim
python34-neovim.noarch : Python client to Neovim
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent
: enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-go.x86_64 : Go development plugin for Vim
vim-gtk-syntax.noarch : Vim syntax highlighting for GLib, Gtk+, Gstreamer, and
: more
vim-jellybeans.noarch : A colorful, dark color scheme for Vim
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-toml.noarch : Vim syntax for TOML
vim-vimoutliner.noarch : Script for building an outline editor on top of Vim
xtuple-csvimp-devel.x86_64 : CSVImp development files
apvlv.x86_64 : PDF viewer which behaves like Vim
vim-fugitive.noarch : A Git wrapper so awesome, it should be illegal
vim-halibut.noarch : Syntax file for the halibut manual tool
xtuple-csvimp.x86_64 : xTuple data import utility

======================= N/S matched: uwsgi-plugin-python =======================
uwsgi-plugin-python2.x86_64 : uWSGI - Plugin for Python 2 support
uwsgi-plugin-python2-gevent.x86_64 : uWSGI - Plugin for Python 2 GEvent support
uwsgi-plugin-python2-tornado.x86_64 : uWSGI - Plugin for Tornado (Python 2)
: support
uwsgi-plugin-python34.x86_64 : uWSGI - Plugin for Python 3.4 support
uwsgi-plugin-python34-gevent.x86_64 : uWSGI - Plugin for Python 3.4 GEvent
: support
uwsgi-plugin-python34-tornado.x86_64 : uWSGI - Plugin for Tornado (Python 3.4)
: support
uwsgi-plugin-python36.x86_64 : uWSGI - Plugin for Python 3.6 support
uwsgi-plugin-python36-gevent.x86_64 : uWSGI - Plugin for Python 3.6 GEvent
: support

Name and summary matches mostly, use "search all" for everything.

所以我

[root@localhost conf.d]# yum install uwsgi-plugin-python36
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package uwsgi-plugin-python36.x86_64 0:2.0.17.1-1.el7 will be installed
--> Processing Dependency: uwsgi-plugin-common = 2.0.17.1-1.el7 for package: uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64
--> Processing Dependency: python36 for package: uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64
--> Processing Dependency: libpython3.6m.so.1.0()(64bit) for package: uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64
--> Running transaction check
---> Package python36.x86_64 0:3.6.6-1.el7 will be installed
---> Package python36-libs.x86_64 0:3.6.6-1.el7 will be installed
---> Package uwsgi-plugin-common.x86_64 0:2.0.17.1-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
uwsgi-plugin-python36 x86_64 2.0.17.1-1.el7 epel 80 k
Installing for dependencies:
python36 x86_64 3.6.6-1.el7 epel 66 k
python36-libs x86_64 3.6.6-1.el7 epel 8.6 M
uwsgi-plugin-common x86_64 2.0.17.1-1.el7 epel 53 k

Transaction Summary
================================================================================
Install 1 Package (+3 Dependent packages)

Total download size: 8.8 M
Installed size: 37 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): python36-3.6.6-1.el7.x86_64.rpm | 66 kB 00:02
(2/4): python36-libs-3.6.6-1.el7.x86_64.rpm | 8.6 MB 00:00
(3/4): uwsgi-plugin-common-2.0.17.1-1.el7.x86_64.rpm | 53 kB 00:00
(4/4): uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64.rpm | 80 kB 00:00
--------------------------------------------------------------------------------
Total 2.3 MB/s | 8.8 MB 00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python36-3.6.6-1.el7.x86_64 1/4
Installing : python36-libs-3.6.6-1.el7.x86_64 2/4
Installing : uwsgi-plugin-common-2.0.17.1-1.el7.x86_64 3/4
Installing : uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64 4/4
Verifying : uwsgi-plugin-python36-2.0.17.1-1.el7.x86_64 1/4
Verifying : python36-libs-3.6.6-1.el7.x86_64 2/4
Verifying : python36-3.6.6-1.el7.x86_64 3/4
Verifying : uwsgi-plugin-common-2.0.17.1-1.el7.x86_64 4/4

Installed:
uwsgi-plugin-python36.x86_64 0:2.0.17.1-1.el7

Dependency Installed:
python36.x86_64 0:3.6.6-1.el7
python36-libs.x86_64 0:3.6.6-1.el7
uwsgi-plugin-common.x86_64 0:2.0.17.1-1.el7

Complete!

安装完成后,需要在此项目的uwsgi的ini文件中设置参数plugins = python36

=​​​​​​​成功解决BUG的第三天​​​​​​​=

今天又部署了一个项目,但是项目是python2.7开发的

然后按照之前的解决方式,安装了uwsgi-plugin-python2 然后ini文件中设置了plugins = python2,依然存在问题

然后又尝试安装uwsgi-plugin-python2-gevent,还是没有用

只能祭出终极绝招了!

2. 解决办法二

首先卸载了yum安装的uwsgi

yum remove uwsgi

然后分别进入两个项目的虚拟环境,在虚拟环境中单独使用pip安装uwsgi

然后再supervisord的ini文件中,指定uwsgi的启动路径(即虚拟环境的bin目录),然后问题解决了!!!