uwsgi+nginx部署django
第一步:在项目的settings中配置STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR,’static’)
第二步:将所有静态文件复制到STATIC_ROOT目录内
python3 manage.py collectstatic
执行完成后会在项目目录内生成static存放所有的静态文件
第三步:配置uwsgi.ini和nginx.conf这两个配置文件,共3三种方式
第一种方式:常规http方式
uwsgi配置:
[uwsgi]
http = :8081
chdir= /root/project_test/s11_30
wsgi-file= s11_30/wsgi.py
virtualenv = /root/test/p1
processes = 2
threads=2
daemonize=/root/uwsgi/django.log
vacuum=true
py-autoreload=1
nginx配置:
server{
listen 80 default_server;
server_name ss.com;
location / {
proxy_pass http://127.0.0.1:8081;
}
location /static {
root /root/project_test/s11_30;
}
}
第二种:socket方式
uwsgi配置:
[uwsgi]
socket = :8081
chdir= /root/project_test/s11_30
wsgi-file= s11_30/wsgi.py
virtualenv = /root/test/p1
processes = 2
threads=2
daemonize=/root/uwsgi/django.log
vacuum=true
py-autoreload=1
nginx配置:
server{
listen 80 default_server;
server_name ss.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8081;
}
location /static {
root /root/project_test/s11_30;
}
}
第三种:
uwsgi配置:
[uwsgi]
socket= /root/project_test/s11_30/super.sock
chdir= /root/project_test/s11_30
wsgi-file= s11_30/wsgi.py
virtualenv = /root/test/p1
processes = 2
threads=2
daemonize=/root/uwsgi/django.log
vacuum=true
py-autoreload=1
nginx配置:
server{
listen 80 default_server;
server_name ss.com;
location / {
include uwsgi_params;
uwsgi_pass unix://root/project_test/s11_30/super.sock;
}
location /static {
root /root/project_test/s11_30;
}
}
第三种方式会在项目根目录下生成一个super.sock文件
官方说socket比http快10倍,所以选择2和3,3的性能高于2,2的通用性强于3,如果在linux系统内,选择3,不然选择2.
浙公网安备 33010602011771号