uwsgi -- unavailable modifier requested: 0 -- 的解決辦法

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目錄),然後問題解決了!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章