一个简单的python web应用部署 nginx + uwsgi
1.环境配置
(1) 所需环境
操作系统:Mac os,linux
python, web.py,uWSGI,uwsgitop,nginx
(2) 步骤
安装python,web.py
安装uWSGI:pip install uwsgi
安装uwsgitop:pip install uwsgitop (检测uwsgi运行状态)
安装nginx:pip install nginx
2.编写python web 应用 app.py
(1) 代码
# coding:utf-8 import web urls = ('/', 'index') app = web.application(urls, globals()) class index: def GET(self): greeting = "hello world" return greeting application = app.wsgifunc() if __name__ = "__main__": pass
2) 注意
application = app.wsgifunc() 必不可少少, 它作为 wsgi 或 uwsgi 操作的handler , uwsgi 不会运行 __main__ 中的代码
3. 配置uwsgi
1)编写 app.ini 文件
[uwsgi] socket = /Users/cityking/workspace/django/uwsgi.sock wsgi-file = app.py home = /Users/cityking/workspace/django/django_env/ master = true
注意
确保是在 app.py 所在的文件目录
socket 确保与 nginx 配置中的 uwsgi_pass 一样,/Users/cityking/workspace/django/uwsgi/ 为当前所在目录
Home 是运行环境所在的目录
2) 启动uwsgi
uwsgi.ini
4. 配置nginx
1) 在复制系统配置文件 nginx.conf 文件
cp /usr/local/etc/nginx.conf my_nginx.conf
ln my_nginx.conf /usr/local/etc/nginx/my_nginx.conf
修改 my_nginx.conf
server { listen 8080; server_name localhost; location / { include uwsgi_params; uwsgi_pass unix:/Users/cityking/workspace/django/uwsgi/uwsgi.sock } }
Listen 为监听端口,即浏览器所访问的端口
uwsig_pass 即 uwsgi 配置中的 socket 路径
5. 在浏览器中访问
在浏览器中访问 http://localhost:8080
在网页中显示hello world 则部署成功