Django2.0框架项目环境部署

/ 0评 / 0

Django是一个MTV模式的Web框架,本质上与熟知的MVC模式没有区别,只是定义稍有区别。

本文基于Centos7.4,更侧重Linux系统的编译安装各种程序及其依赖包。

废话在前:
我们在PC上开发Django项目时,只需安装Python,然后使用python manage.py runserver来运行服务器,但这只适用开发环境中使用,正式发布服务时,我们需要一个可以稳定而持续的服务器,比如Apache,Nginx,Lighttpd等,本文将以Nginx为例,配置一个在Centos7.4上可以稳定运行的环境。

Django版本2.0.3需用Python3支持,Centos默认安装配置的是Python2,因此我们需要先安装Python3。
Django自带的服务器好像一般只是在开发时用,所以我们需要用Nginx来做端口转发。同时,微信小程序request域名要支持https,因此在Nginx编译安装时需要加入http_ssl_module。
最后,项目要能够支持xml文件启动。

一、准备工作
为centos系统增加编译功能:

yum -y install gcc gcc-c++ autoconf automake libtool make cmake

为安装Nignx添加依赖包:

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

为安装Python3防止报错

yum -y install wget bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

为了让uwsig支持使用“-x”选项,能通过xml文件启动项目

yum -y install libxml*

二、安装Python3

安装Python3最新版本

进入home路径(cd 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

将Python3安装到/usr/local/python3/路径下

./configure --prefix=/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

三、安装Django2.0与uwsgi

使用Django官网推荐的pip安装

pip3 install django

以下ln命令为了在终端中使用django-admin命令

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

安装uwsgi

pip3 install uwsgi

以下ln命令为了在终端中使用uwsgi命令(如直接使用uwsgi3 -x myproject.xml)启动项目

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>

四、安装Nginx

下载

wget http://nginx.org/download/nginx-1.13.10.tar.gz

解压

tar -zxvf nginx-1.13.10.tar.gz

进入解压后的nginx-1.13.10文件夹

cd nginx-1.13.10

编译安装Nginx同时安装ssl模块(https)

./configure --with-http_ssl_module
make
make install

一些配置

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

cd /usr/local/nginx/conf/

配置nginx.conf

vi nginx.conf

加入以下内容

# 外部访问443就转发到内部8997
# 以下内容请保证在默认内容的大括号内
# 仿照腾讯云Nginx证书安装配置
server {
    listen 443;#暴露给外部访问的端口           
    server_name api.mdavid.cn;
    charset utf-8;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/ssl/your.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/your.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命令启动,直接访问你的服务器ip时会看到默认的Nginx页面的。

至此,我们完成环境的部署,将你的项目上传到www目录下,用以下命令启动你的项目

uwsgi3 -x myproject.xml

我们通过https://你的域名就可以访问你的项目了。

发表评论

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