uWSGI其三:搭配Nginx

Nginx我這臺機器有默認安裝,新增配置:html

server{
    listen       80 ;    #監聽80端口
    access_log /export/servers/nginx/logs/mypro.local_access.log;    #日誌文件位置
    error_log  /export/servers/nginx/logs/mypro.local_error.log;
    location / {#訪問/時
     include         uwsgi_params; #加載uwsgi模塊
     proxy_pass http:
//127.0.0.1:9090; #將請求跳轉到該端口 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /static/ { alias /export/servers/mypro/static/; #訪問/static時直接訪問到/project/static } }

注意對access_log和error_log新建log文件.

uWSGI 配置
端口9090是uwsgi開啓的,要接收80來的請求.uWSGI啓動能夠使用xml,ini,yaml,yml,json等格式的配置文件來啓動.
1. xml 配置
請肯定你在上一節中的django_wsgi.py文件已經存在了.新建一個XML文件:mypro.xml,將它放在/export/App/mypro/目錄下:python

<uwsgi>
    <socket>127.0.0.1:9090</socket>
    <listen>80</listen>
    <master>true</master>
     <pythonpath>/export/App/mypro</pythonpath>
    <processes>1</processes>
    <logdate>true</logdate>
    <daemonize>/var/log/uwsgi.log</daemonize>
    <plugins>python</plugins>
</uwsgi>

而後執行命令:nginx

$ uwsgi -x /export/App/mypro/mypro.xml

orapache

$ uwsgi --xml /export/App/mypro/mypro.xml

有時候因各類環境問題,-x --xml命令識別不了,好比個人系統版本爲Centos6.6,uWSGI版本爲2.0.15.能夠使用下面ini配置方式:django

2. ini配置json

[uwsgi]
vhost = false
plugins = python
socket = 127.0.0.1:9090
master = true
enable-threads = true
workers = 1
wsgi-file = /export/App/mypro/mypro/wsgi.py
virtualenv = /export/servers/python/2.7.12 # python安裝目錄
chdir = /export/App/mypro

而後執行命令:瀏覽器

$ uwsgi --ini /export/App/mypro/mypro.ini &
$ ps -fe | grep mypro
admin     3192 13386  2 10:42 pts/0    00:00:00 uwsgi --ini /export/App/mypro/mypro.ini
admin     3195  3192  0 10:42 pts/0    00:00:00 uwsgi --ini /export/App/mypro/mypro.ini
admin     3232 13386  0 10:43 pts/0    00:00:00 grep mypro

在實際部署環境中,我一般使用以前命令行的形式後臺啓動9090端口保持監聽.命令格式以下:tomcat

$ uwsgi --http :9090 --chdir /export/App/mypro --module django_wsgi -M -p 8 --http-buffer-size=64000 --buffer-size=64000 -d /export/Logs/mypro/uwsgi.log &

--chdir Django程序目錄
--module 使用django_wsgi,相似apache-tomcat的mod_jk和nginx-tomcat的mod_proxy
-M enable master process
-p spawn the specified number of workers/processes(開啓8個進程)
-d 記錄啓動日誌

如無心外,在瀏覽器裏直接訪問80端口,就能看到Django項目的默認頁面了.socket

相關文章
相關標籤/搜索