Django 2.0框架Web项目环境部署

/ 0评 / 0

废话在前
我们在PC上开发Django项目使用python manage.py runserver来运行服务器,这只适用测试环境中使用,正式发布服务时,我们需要一个稳定而持续的服务器,比如Apache,Nginx等,本文将以Nginx为例。
1、准备工作

yum -y install gcc gcc-c++ autoconf automake libtool make cmake #为centos系统增加编译功能
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
yum -y install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel #安装这些模块都是为了成功编译安装python3防止出现各种异常
yum -y install libxml* #安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目

2、安装python3最新版本
进入home路径(本人喜欢把东西都下载到这里),执行以下命令

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

下载完成后,执行解压命令

tar -zxvf Python-3.6.5.tgz

进入解压后的Python-3.6.5文件夹

cd Python-3.6.5

依次执行以下命令

./configure --prefix=/usr/local/python3 #将python3安装到/usr/local/python3/路径下
make -j2
make install -j2

以下两个ln命令是为了方便在终端中直接使用python3和pip3命令

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

3、安装nginx和配置nginx.conf文件
进入home目录,先安装ssl模块

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
./configure --with-http_ssl_module --with-pcre --with-zlib=/usr/local/zlib

进入home目录,安装nginx

wget http://nginx.org/download/nginx-1.13.10.tar.gz
tar -zxvf nginx-1.13.10.tar.gz
cd nginx-1.13.10
./configure --with-http_ssl_module --with-pcre
make
make install

nginx一般默认安装好的路径为/usr/local/nginx

cd /usr/local/nginx

在/usr/local/nginx/conf/中打开nginx.conf

vi nginx.conf

加入以下内容

    # 外部访问443就转发到内部8997
    # 以下内容请保证在默认内容的大括号内
    server {
        listen 443;#暴露给外部访问的端口           
        server_name api.mdavid.cn;
        charset utf-8;
        ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/1.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/2.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#按照这个协议配置 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8997;#外部访问443就转发到内部8997
        }
        location /static/ {
            alias /home/www/myproject/myapp/static/;#项目静态路径设置 
        }
    }

保存后进入/usr/local/nginx/sbin/目录,执行./nginx -t命令先检查配置文件是否有错,没有错就执行命令./nginx启动。

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

4、如何启动项目
安装django2.03和uwsgi2.0.17以及配置启动项目的xml文件

pip3 install django
pip3 install uwsgi

为了在终端中使用uwsgi命令(直接使用如uwsgi3 -x myproject.xml),执行以下命令

ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp",在你的django项目下新建myproject.xml,内容如下

<uwsgi>
    <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
        <chdir>/home/www/myproject</chdir><!-- 项目路径 -->
            <module>myproject.wsgi</module>
                <processes>4</processes> <!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

进入你的django项目路径,执行以下命令

uwsgi3 -x myproject.xml

以上步骤都没有出错的话,打开你的浏览器,访问yourip:443应该成功。
记得关闭系统防火墙或者开放8996端口。

发表评论

电子邮件地址不会被公开。 必填项已用*标注