Django项目的部署,nginx与uwsgi的详细配置

安装python3.6

在centos中,系统默认只提供python2.7的版本,但是项目我们使用的python3.6的版本。所有我们自己安装python3

安装Python3的方法

首先安装依赖包

yum -y groupinstall "Development tools"

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

然后根据自己需求下载不同版本的Python3,我下载的是Python3.6.2

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

然后解压压缩包,进入该目录,安装Python3

tar -xvJf  Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install

最后创建软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

安装环境

  1. 安装virtualenv
yum install python-virtualenv
  1. 创建虚拟环境
virtualenv --no-site-packages env

cd env

# 激活虚拟环境
source bin/activate

部署

Nginx 安装

下载安装源

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装

yum install nginx

远程服务器nginx.conf地址:etc/nginx/nginx.conf

sever服务地址:etc/nginx/conf.d/default.conf/

Nginx不会自行启动。要运行Nginx

systemctl start nginx

启动nginx后,访问你的服务器端口,出现Welcome to nginx!代表启动成功

nginx的运行命令:

systemctl status nginx 查看nginx的状态
systemctl start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动
或者 service nginx start

nginx.conf配置

打开default.conf文件,将他自己配置的server注释掉,下面加上我们自己的server

server{

    listen         80;
    server_name     39.108.81.211
    charset UTF-8;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;

    client_max_body_size 75M;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
    }
    location /static {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias /lq/day06/static/;
     }
}

这时我们访问我们放在static目录下的图片,如果出现图片,代表配置成功。

下面配置uwsgi.ini文件

[uwsgi]

# 守护进程
master = true

# 进程个数
processes = 4

# 虚拟环境
pythonhome = /lq/testenv

# 项目地址
chdir =/lq/day06

# 指定python版本
pythonpath = /usr/local/python3/bin/python3

# 指定uwsgi文件
module = day06.wsgi

# 和nginx通信地址:端口
socket = 127.0.0.1:8890

如果现实有master进程与worker 就代表配置成功,你就可以访问Django项目。这里面要特别注意pip的版本问题,你用的Python版本要与pip相对应,虚拟环境的版本也要与pip安装时保持一致,还有虚拟环境下的pip也要注意,因为阿里云服务器有自带的Python和pip与virtualenv,这个问题要特别注意!

猜你喜欢

转载自blog.csdn.net/Lq_520/article/details/81540507