几个月之前写了一个django应用,现在记录一下部署过程,不然之后需要的时候就该忘了。
准备工作
项目完成之后首先运行开发服务器测试,确保无误。
python manage.py runserver
安装一些东西
sudo apt-get install python-dev
安装supervisor,用来管理uwsgi
sudo pip install supervisor
安装uwsgi
sudo pip install uwsgi
用uwsgi手动运行项目进行测试
uwsgi --http :8001 --chdir /path/to/project --home=/path/to/env --module project.wsgi
按理说我们应该使用supervisor来管理uwsgi,然而我这里遇到了一些麻烦。在我的ubuntu测试环境上,只要一启动supervisord,内存就会蹭蹭蹭往上涨,直到全部内存都吃掉之后卡死。
反正我也没有那么多的项目要管理,所以直接放弃这货。
配置uwsgi
向uwsgi.ini中写入:
[uwsgi] chdir=/path/to/project/ module=myproject.wsgi:application socket=/tmp/project.sock master=True pidfile=/tmp/myproject-master.pid vacuum=True max-requests=5000 daemonize=/path/to/project/myproject.log
socket=/tmp/project.sock这行需要记住,我们一会需要把它和nginx关联
完成之后我们先要让uwsgi跑起来,另外你也可以把这条命令写入rc.local来实现自启动。
uwsgi --ini /path/to/conf/uwsgi.ini
配置nginx
upstream kotori_uwsgi { server unix:///tmp/project.sock; } server { listen 80; server_name example.com; charset utf-8; client_max_body_size 75M; location /media { alias /path/to/project/media; } location /static { alias /path/to/project/static; } location / { uwsgi_pass kotori_uwsgi; include /etc/nginx/uwsgi_params; } }
测试并重启nginx。
关闭调试
测试无误后,需要将应用的调试模式关掉以确保安全。
进入settings.py
将
DEBUG = True
改为
DEBUG = False
一旦调试模式关闭,就必须设置下面的ALLOWED_HOSTS,否则访问时会报HTTP 400错误。
ALLOWED_HOSTS = ['*']
Done.
发表回复/Leave a Reply