1.准备生产环境配置文件
复制开发环境配置文件dev.py到生产环境配置文件prod.py,并做修改。
#SECURITY WARNING: don’t run with debug turned on in production!
#DEBUG = True
DEBUG = False
ALLOWED_HOSTS = [‘www.xxxx.com’]
2.准备生产环境启动文件
生产环境我们是使用 项目名.wsgi.py 启动服务的。
os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “项目名.settings.prod”)
3.安装uwsgi包
Django的程序通常使用uwsgi服务器来运行。
$ pip install uwsgi
4.准备uwsgi服务器配置文件
新建 项目名.uwsgi.ini配置文件
[uwsgi]
以下二选一
① #使用Nginx连接时使用,Django程序所在服务器地址
socket=172.16.21.25:8001
②#直接做web服务器使用,Django程序所在服务器地址
#http=172.16.21.25:8001
#项目目录
chdir=项目路径/meiduo_project/meiduo_mall
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=meiduo_mall/wsgi.py
#进程数
processes=4
#线程数
threads=2
#uwsgi服务器的角色
master=True
#存放进程编号的文件
pidfile=uwsgi.pid
#日志文件
daemonize=uwsgi.log
#指定依赖的虚拟环境
路径可以进入虚拟环境之后使用命令(whcih python)
virtualenv= /home/python/.virtualenvs/django_py3
5.管理uwsgi服务器
#启动
$ uwsgi --ini uwsgi.ini
#关闭
$ uwsgi --stop uwsgi.pid
#杀死进程
sudo kill -9 pid
#查看状态
sudo lsof -i:端口号
重载文件方法
一:在默认设置下,uwsgi本身不会立即加载修改后的文件,这是为了效率起见。如果你有修改代码后需要立即在服务器上reload的需求,则在uwsgi的ini文件中加入如下修改(不建议):
py-autoreload = 1
二:手动重载uwsgi和代码的方式
首先,确保你uwsgi的ini配置文件有自动生成pidfile。
pidfile = /path/to/your/uwsgi.pid
然后,在你的uwsgi.pid的目录下执行:
uwsgi --reload uwsgi.pid
#其中uwsgi.pid是我的uwsgi自动生成的文件,即进程的pid文件。