一個簡單的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 則部署成功