天天看点

【超级详细】在Centos7服务器上部署Django项目概览

将Django项目部署到阿里云的轻量服务器(包含nginx的https配置

  • 概览
    • 准备工作
    • 配置uwsgi
    • 配置nginx

概览

准备工作

  1. 安装uwsgi
pip install uwsgi
           

2.安装Nginx

yum  install nginx
           

配置uwsgi

1.现在你的django项目下面创建 以你项目名命名的.xml文件,并写入如下内容:

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

2.编辑完成之后执行如下命令

uwsgi -x yourProjectName.xml
           

3.此时uwsgi就配置完毕了

配置nginx

  1. 先执行whereis nginx查看nginx安装到哪里了
    【超级详细】在Centos7服务器上部署Django项目概览
  2. 我这里进入 /etc/nginx 目录
    【超级详细】在Centos7服务器上部署Django项目概览
  3. 执行vim nginx.conf开始编辑nginx.conf文件
  4. 具体修改过程如下:
server {
        listen        443 ssl;
        server_name  这里填你网站绑定的域名;
        ssl_certificate your.pem;#填写你的证书路径
        ssl_certificate_key your.key;#填写你的密钥路径
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#这里表示使用的加密套件的类型
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#表示使用的TLS协议类型
        ssl_prefer_server_ciphers on;
        charset UTF-8;

        client_max_body_size 75M;

       # root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;#表示443端口指向本地的8000端口
           uwsgi_param UWSGI_SCRIPT MinProApi.wsgi;#这个填写项目名.wsgi(至于为什么要这样写我也暂时没有弄懂)
           uwsgi_param UWSGI_CHDIR /opt/wwwroot/MinProApi;#填写你项目的路径
        }


           

5.完成上面的配置我们先执行./nginx -t命令检查相关配置是否有错,如果没有就执行以下命令重启nginx

./nginx -s reload
           

这时候我们就可以通过https://加上你的域名从而访问你的网站了,但是这样的坏处是每次都要输入https://而不是直接输入域名来执行对网站的访问。

所以我们还要在nginx.conf中添加上如下的内容:

server{
      listen 80;
      server_name 你的域名;#这里必须是证书绑定的域名
      rewrite ^/(.*) https://你的域名/$1 permanent;#将所有http请求通过rewrite重定向到https
}

           

添加完如上的内容之后,重启nginx后,我们就可以直接通过域名或者ip访问自己的网站了(happy.gif)

6.对了为了方便新手上面添加的两个server在nginx.conf中的关系如下(谁先谁后没关系):

server{
}
server{
}
           

7.最后本菜狗想说,由于本人能力不足如有错误还要请多多指正啊xdm