UWSGI和NGINX for Ubuntu 11.10上的Python应用程序

前端之家收集整理的这篇文章主要介绍了UWSGI和NGINX for Ubuntu 11.10上的Python应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图找到一种最佳方式来设置我的服务器以使用Nginx和UWSGI来为python应用程序提供服务.到目前为止,以下工作:

初始设置:

sudo apt-get install Nginx uwsgi uwsgi-plugin-http uwsgi-plugin-python python-setuptools

easy_install pip

pip install web.py

在/ etc / Nginx的/网站可用/默认:

server {
    listen 80;
    server_name localhost;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9090;
    }
}

然后我有一个基本的myapp.py(位置对当前设置无关紧要):

import web

urls = (
    '/','index'
)

app = web.application(urls,globals())

class index:
    def GET(self):
        return "Hello from Web.py!"

application = app.wsgifunc()

然后我可以发出以下命令,一切正常:

sudo service Nginx restart

uwsgi --plugins http,python -s 127.0.0.1:9090 myapp

所以它有效,但它不是很漂亮.我注意到当我用apt-get安装UWSGI时,创建了两个目录:/ etc / uwsgi / apps-available和/ etc / uqsgi / apps-enabled.这符合运行Nginx或Apache的debian服务器的惯例,只适用于应用而非站点.

这将是非常棒的:我希望能够将应用程序配置放入可用的应用程序(根据需要在应用程序中创建符号链接)并让UWSGI服务选择它们.但我不知道从哪里开始.我在应用程序中放置了哪些配置文件Nginx配置对于传递到uwsgi服务而不是传递到我之前发出的命令创建的套接字是什么样的?

最佳答案
我搞定了!这是我做的:

创建/etc/uwsgi/apps-available/myapp.xml:

发出以下命令:

ln -s /etc/uwsgi/apps-available/myapp.xml /etc/uwsgi/apps-enabled/myapp.xml
sudo service uwsgi restart

更新了/ etc / Nginx / sites-available / default:

server {
    listen 80;
    server_name localhost;
    location / {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi-myapp.sock;
    }
}

重启Nginx

sudo service Nginx restart

一切都是金色的!显然,以上是一个非常简单的配置,应该在投入生产之前查看可用的UWSGI和Nginx选项.

UWSGI配置中还有< socket> 127.0.0.1:9090< / socket>然后保留Nginx配置.

最后需要注意的是:UWSGI支持多种配置格式:(INI,XML和YAML).我最初尝试过YAML,但服务器无法启动所以我尝试了XML,一切正常.

编辑:

我刚尝试了INI配置,它也运行良好.作为上述XML文件的等效INI文件如下:

[uwsgi]
socket = /tmp/uwsgi-myapp.sock
plugins = http,pythong
chdir = /path/to/directory/containing/python/app
module = myapp

猜你在找的Nginx相关文章