一個簡單的python web應用部署 nginx+uwsgi
1.環境配置
1)所需環境
操作系統 Mac os
python3.6,web.py 0.40, uWSGI 2.0.15, uwsgitop 0.10, nginx 1.10.3
2)步驟
安裝python3.6 —略
安裝web.py
easy_install web.py(推薦)
pip install web.py
如果報錯 可能還需安裝utils db
pip install utils
pip install db
安裝uWSGI
pip install uwsgi
安裝uwsgitop
uwsgitop作用:監測uwsgi運行狀態
pip install uwsgitop
安裝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/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 app.ini
4.配置nginx
1)在復制系統配置文件nginx.conf文件
cp /usr/local/etc/nginx/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為監聽端口,即瀏覽器所訪問的端口
uwsgi_pass 即uwsgi配置中的socket路徑
2)啟動nginx
nginx -c /usr/local/etc/nginx/my_nginx.conf
5.在瀏覽器中訪問
在瀏覽器中訪問http://localhost:8080
在網頁中顯示hello world 則部署成功