Nginx+uwsgi+Python3.6部署Django项目
-
系统环境
-
centos7.3
-
python3.6.6
-
django2.2
-
uwsgi2.0.18
-
nginx1.14.2
-
-
安装python3.6.6
- 下载python安装包,wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
- 解压并进入解压文件夹,tar xvf Python-3.6.6.tar.xz && cd Python-3.6.6
- 编译安装,依次输入以下命令
-
./configure --prefix=/usr/local/python3 --with-ssl
-
make
-
make install
-
-
创建python3的软连接
-
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
-
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
-
输入 python3 ,显示如下说明python3.6.6安装成功
-
输入 exit() 退出python3.6.6
-
-
安装django和uwsgi
-
pip3 install django
-
pip3 install uwsgi
-
-
创建uwsgi的软连接
-
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
-
-
创建django项目,项目名为hello
-
django-admin startproject hello
-
cd hello/hello
-
编辑 settings.py配置文件,vim settings.py,添加静态文件路径
-
STATIC_ROOT='/root/pyweb/hello'
-
保存退出
-
-
进入 manage.py 所在文件夹,执行以下命令把hello项目的静态文件收集到在nginx配置的指定文件夹中
-
python manage.py collectstatic
-
-
-
安装nginx及配置
- 添加nginx到yum源,rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 安装nginx,yum install -y nginx
- 启动nginx,systemctl start nginx
- 在浏览器输入服务器ip,看到如下页面说明nginx安装成功
- 修改nginx配置文件,vim /etc/nginx/conf.d/default.conf
- 在server标签中添加以下内容
- location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8008; # 转发到uwsgi监听的端口,和uwsgi的配置文件保持一致
}
location /static{
alias /root/pyweb/static; # 对应django静态文件存放位置
} - 注释掉其他的 location ,即在其每行的行首添加 # 号
- 重启nginx,system restart nginx
-
配置uwsgi
- 进入hello文件夹
- 创建配置文件,vim uwsgi_conf.ini,添加以下内容
-
[uwsgi]
# the base directory (full path)
chdir = /root/pyweb/hello# Django's wsgi file
module = hello.wsgi# process-related settings
# master
master = true# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# clear environment on exit
vacuum = true# chmod-socket = 8008
socket= :8008# add uwsgi log
daemonize = /root/pyweb/hello/uwsgi.log
# add uwsgi pid
pidfile = /root/pyweb/hello/uwsgi.pid - 启动uwsgi,uwsgi --ini uwsgi_conf.ini
- 停止uwsgi,uwsgi --stop uwsgi.pid
- 启动uwsgi后,在浏览器地址栏输入服务器对应ip,即可访问django项目
- 看到如下页面说明配置成功