Django-Nginx-uwsgi
在开发环境下调试好python项目之后,把项目迁移到nginx上面
首先把django admin的静态文件目录复制一份到你设置的static文件目录下:
python manage.py collectstatic
关闭settings.py中的debug,关闭debug之后staticfiles就不生效了,需要在nginx配置静态文件的访问。
安装uwsgi
pip install uwsgi
创建wsgi文件:
root@server1 testweb]# pwd /Django/testweb [root@server1 testweb]# cat wsgi.py import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testweb.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
创建ini配置文件:
[root@server1 testweb]# pwd /Django/testweb [root@server1 testweb]# cat app.ini [uwsgi] chdir = /Django/testweb/ ;wsgi-file = /Django/testweb/wsgi.py module = testweb.wsgi socket = 127.0.0.1:3400 ;socket = /var/log/%(project).sock chmod-socket = 664 ;http = 0.0.0.0:8001 ;stats = 0.0.0.0:8001 master = true processes = 4 threads = 2 max-requests = 6000 vacuum = true pidfile = /var/log/uwsgi.pid; daemonize = /var/log/uwsgi.log
启动uwsgi:
[root@server1 testweb]# uwsgi --ini app.ini
也可编写uwsgi启动脚本:
[root@server1 ~]# cat /etc/init.d/uwsgi uwsgi_path=/usr/bin/uwsgi uwsgi_ini=/Django/testweb/app.ini uwsgi_pid=/var/log/uwsgi.pid if [ ! -n $1 ] then echo "Usages: [start|stop|restart]" exit 0 fi if [ $1 = start ] then psid=`ps aux | grep "zh" | grep -v "grep" | wc -l` if [ $psid -gt 4 ] then echo "uwsgi is running!" exit 0 else uwsgi --ini $uwsgi_ini echo "Start uwsgi service [OK]" fi elif [ $1 = stop ];then killall -s INT uwsgi echo "Stop uwsgi service [OK]" elif [ $1 = restart ];then #killall -s INT uwsgi #uwsgi --ini uwsgi_ini kill -HUP $uwsgi_pid echo "Restart uwsgi service [OK]" else echo "Usages: [start|stop|restart]" fi [root@server1 ~]# cat /etc/init.d/uwsgi uwsgi_path=/usr/bin/uwsgi uwsgi_ini=/Django/testweb/app.ini uwsgi_pid=/var/log/uwsgi.pid if [ ! -n $1 ] then echo "Usages: [start|stop|restart]" exit 0 fi if [ $1 = start ] then psid=`ps aux | grep "zh" | grep -v "grep" | wc -l` if [ $psid -gt 4 ] then echo "uwsgi is running!" exit 0 else uwsgi --ini $uwsgi_ini echo "Start uwsgi service [OK]" fi elif [ $1 = stop ];then killall -s INT $uwsgi_path echo "Stop uwsgi service [OK]" elif [ $1 = restart ];then #killall -s INT uwsgi #uwsgi --ini uwsgi_ini kill -HUP $uwsgi_pid echo "Restart uwsgi service [OK]" else echo "Usages: [start|stop|restart]" fi
配置nginx.conf文件,添加下面一行内容:
include /usr/local/nginx/conf/conf.d/*;
在conf.d新建app.conf文件:
[root@server1 conf.d]# cat app01.conf server { listen 80; server_name localhost; charset utf-8; access_log logs/testweb/app01/access_log; error_log logs/testweb/app01/error_log; client_max_body_size 75M; # adjust to taste #location /admin { #alias /Django/testweb/static/admin # } location /static { alias /Django/testweb/static; # your Django project's static files - amend as required } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass 127.0.0.1:3400; include uwsgi_params; # the uwsgi_params file you installed } }
重新启动Nginx:
[root@server1 conf.d]# /etc/init.d/nginx stop [root@server1 conf.d]# /etc/init.d/nginx start
访问页面测试:
调试过程中,报错多多查看日志排错。
相关推荐
岁月如歌 2020-07-27
lreis00 2020-06-29
89403969 2020-06-12
ZhaoMengjiao 2020-06-09
87193750 2020-05-30
咻咻ing 2020-05-17
eightbrother 2020-05-05
87254055 2020-04-14
ZhaoMengjiao 2020-03-28
ZhaoMengjiao 2020-03-08
89403969 2020-03-04
89403969 2020-03-04
87193750 2020-02-24
85407718 2020-02-09
eightbrother 2020-01-02
vanturman 2019-12-26
山顶冻人 2019-12-25
aolishuai 2019-12-13
89403969 2019-12-11