几个月之前写了一个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