""" WSGI config for HelloWorld project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/ """ import os,sys os.environ['PYTHON_EGG_CACHE'] = '/data/wwwroot/HelloWorldroot/.python-eggs' reload(sys) from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings") application = get_wsgi_application() if __name__ == "__main__": HelloWorld.run()
演示的是django HelloWorld項目啓動,上面的是位於/data/wwwroot/HelloWorldroot/HelloWorld/wsgi.pypython
[uwsgi] #socket = 127.0.0.1:9666 #設置監聽的端口 socket = /tmp/HelloWorld_uwsgi.sock #設置使用sock #修改文件後自動重啓,觸發時間3秒 py-autoreload=3 pidfile=/tmp/HelloWorld-master.pid master=true vhost=true #項目目錄 chdir=/data/wwwroot/HelloWorldroot/ module=HelloWorld.wsgi
#最大請求數 max-requests = 5000
#啓動的用戶
gid=www
uid=www
uwsgi_read_timeout=600 # 指定接收uWSGI應答的超時時間,完成握手後接收uWSGI應答的超時時間,單位秒。
harakiri=1200 #請求超時時間,單位秒
上面的是位於/data/wwwroot/HelloWorldroot/uwsgi.ininginx
配置supervisordjango
vi /etc/supervisord.d/HelloWord.ini緩存
[program:HelloWord] user=root command=/usr/local/bin/uwsgi /data/wwwroot/HelloWorldroot/uwsgi.ini -l 128 -p 400 --buffer-size 32768 #l 設置套接字偵聽隊列大小,-p 生成指定數量的workers/processes,buffer-size uwsgi包解析的內部緩存區大小#檢測進程中止的信號 stopsignal=QUIT #啓動supervisord的時候自動啓動 autostart=true autorestart = true redirect_stderr=true stdout_logfile=/data/wwwroot/HelloWorldroot/uwsgi.log stderr_logfile=/data/wwwroot/HelloWorldroot/uwsgi_error.log
supervisorctl reload #從新加載配置ruby
supervisorctl status 查看啓動狀態app
使用socket = /tmp/HelloWorld_uwsgi.sock 則使用代理訪問,監聽端口能夠直接訪問端口socket
nginx 配置ui
server { listen 80; server_name 域名; access_log /data/wwwroot/HelloWorldroot/logs/access.log; error_log /data/wwwroot/HelloWorldroot/logs/error.log; location / { include uwsgi_params;
#uwsgi_pass 127.0.0.1:9666; uwsgi_pass unix:/tmp/HelloWorld_uwsgi.sock; } #靜態文件路徑 location /static/ { alias /data/wwwroot/HelloWorldroot/HelloWorld/static/; } }