Nginx + Uwsgi + Django 2.0 配置

这篇文章比较年轻,可能仅仅适合满足这些条件的配置。但是仍然可以提供参考。

Centos用户,或者您在配置过程中出现问题可以左转:

https://blog.youkuaiyun.com/weixin_42271658/article/details/81296999

2018/6/8

终于配置好了!

以阿里云为例 服务器系统为 ubuntu 16.0

本笔记包括:

1. ssl 的配置
2.Nginx + uwsgi + Django 2.0 的组合配置(包括静态文件定位)

前言

1)关于删除:

#删除nginx和其他相关配置文件

sudo apt-get purge nginx 

#卸载依赖程序

sudo apt-get autoremove

2)关于编辑

你可以使用 vim (参考 https://www.cnblogs.com/Ph-one/p/5641872.html),但我更推荐 nano

我比较喜欢取出来放到本地编辑器里面修改。

3) 你必须知道相关的操作

rm mv rmdir vim nano 这五个够了

4)SSH

记得在安全组中打开 SSH 权限。另外,在腾讯云中需要在服务器处下放密钥。

https://cloud.tencent.com/document/product/213/16691

并且腾讯云中的 ubuntu 管理员名为 ubuntu

5) 关于 终端

ssh 链接本地 teminal 停止依然运行的方法

https://blog.youkuaiyun.com/zhouhuakang/article/details/51277659

 

1.安装:

腾讯云中的权限需要 sudo

可以去我的 DJANGO 云端部署那里看 django 和 pip3 的安装

安装 Nginx

sudo apt-get install nginx

安装 Uwsgi

sudo pip3 install uwsgi

 

可以参考这位写的

https://blog.youkuaiyun.com/u010503839/article/details/79853482

(service nginx restart reload 没有效果)

 

注意:用这种方式安装的 nginx

配置文件在:/etc/nginx

自动启动文件在:/etc/init.d

已经默认可以在任意位置通过 nginx 自启动

 

nginx 状态获取和改变

获取状态

ps -ef | grep nginx

删除除了 ssh 进程之外的全部 nginx 进程

pkill -9 nginx

启动

nginx

 

2.完成 ssl 配置

    1.下载钥匙

    在ssl证书管理处

    阿里云位置:

    

 

    上传至服务器

    2.修改 default 文件

    对,最快的方法不是修改 nginx.conf

    因为 include 原因,你可以在 conf.d 和 sites-available 中对服务器虚拟空间进行分类修改。

    但如果你没有这个需求,只是想要配置一个 ssl 的话

    修改 etc/nginx/sites-available 中的 default

    不放心的话,可以吧 enable 中的 default 也修改

    具体修改内容

    在最后加上 (注意,没有 default)把路径修改成自己的

server {
    listen   443 ssl;

    server_name www.example.com; #这个无所谓随便加

    ssl_certificate   /etc/nginx/cert/1111.pem; #路径
    ssl_certificate_key  /etc/nginx/cert/1111.key;
}

    修改最前面的 80

listen 80;
listen [::]:80;
return 301 https://$server_name$request_uri;

    3.打开 443 80 端口!你已经可以看到 ssl 正常运行

    重启服务器

接下来两步参考了 

https://blog.youkuaiyun.com/wjy397/article/details/51610872

3.完成 uwsgi 和 Django 的链接

1.修改 DJANGO settings 中的 debug=false

这样可以阻止 django 对静态文件的自动配置,转而使用 nginx 来进行静态文件配置

2.添加 STATIC_URL 和 STATIC_ROOT

建议的写法:(和下面一致)

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

BASE_DIR 是文件目录

/static/为django主目录下的 static 文件夹

3.迁移

python3 manage.py collectstatic

这样会把所有的静态文件转移到 static_root 目录下

4.彻底重写上一步的 default,删除全部内容后加入以下内容

如下 注意 key 的路径改成自己的 

server {  
    listen 80; 
    listen [::]:80;

    return 301 https://$server_name$request_uri;
  
    root    /var/www/html;  
    index   index.html index.htm index.nginx-debian.html;  
  
  
} 
server {
    listen   443 ssl;

    ssl_certificate   /etc/nginx/cert/11111.pem;
    ssl_certificate_key  /etc/nginx/cert/111111.key;

    server_name www.example.com;  
  
    location /static {  
         alias /root/Server/static/;  
    }  
      
    location /media {  
         alias /root/Server/media/;  
    }  
  
    location / {  
        include uwsgi_params;  
        uwsgi_pass  127.0.0.1:8000;   
  
    }  

uwsgi_pass 后的路径必须和后面启动 uwsgi 时的命令一致

location /static 后跟 static 路径

alias: 绝对路径 比如说上面的就是 /root/Server/static

root: 相对路径 如果把 alias 改成 root 上面的就是/root/Server/static/static

 

创建 uswgi_params 在这里不提,百度一下就有。

4.打开工程目录全部权限(方便访问)这里放在 root 下,所以偷懒 

 chmod -R 775 /root

5.在 Django 工程目录下运行

uwsgi --socket :8000 --chdir /root/工程名 --plugin python3 --module 工程名.wsgi

OK,配置完成

打开 admin 试一下吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值