栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

结合nginx配置域名访问及SSL证书

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

结合nginx配置域名访问及SSL证书

结合nginx配置域名访问及SSL证书
  • Django项目中的配置
    • 配置域名访问
    • 配置SSL证书
    • 配置http重定向https

Django项目中的配置 配置域名访问
upstream django {
   # nginx通过socket在环回接口地址的9001端口与本地的uWSGI进程通信
   # 支持ip:port模式以及socket file模式
   #server:同uwsgi配置中的本地端口配置;
   server 127.0.0.1:8000;
}
server {
    listen 80;
    server_name 域名地址 公网IP;
    charset utf-8;
    client_max_body_size 75M;
    
    # 如果写成/media/,nginx无法找到项目媒体文件路径
    location /media {
        alias /django项目路径/media;
    }
    # 如果写成/static/,nginx无法找到项目静态文件路径
    location /static {
        alias /django项目路径/static;
    }
    location / {
        # nginx转发动态请求到uWSGI
        uwsgi_pass django;
        include uwsgi_params;
    }
}
配置SSL证书
upstream django {
   # nginx通过socket在环回接口地址的9001端口与本地的uWSGI进程通信
   # 支持ip:port模式以及socket file模式
   #server:同uwsgi配置中的本地端口配置;
   server 127.0.0.1:8000;
}
server {
    listen 80;
    server_name 域名地址 公网IP;
    charset utf-8;
    client_max_body_size 75M;
    
    #listen 443;
    #ssl on;
    #Nginx 版本为 nginx/1.15.0以上则使用listen 443 ssl 代替 listen 443 和 ssl on
    listen 443 ssl;
    
    server_name  域名地址;
    #定义服务器的默认网站根目录位置
    root django项目路径;
    ssl_session_timeout 5m;
    ssl_certificate   /etc/nginx/1_xxx_bundle.crt;
    ssl_certificate_key  /etc/nginx/2_xxx.key;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    fastcgi_connect_timeout 300s;#原设置为300s
    fastcgi_send_timeout 300s;#原设置为300s
    fastcgi_read_timeout 300s;#原设置为300s
    # 如果写成/media/,nginx无法找到项目媒体文件路径
    location /media {
        alias /django项目路径/media;
    }
    # 如果写成/static/,nginx无法找到项目静态文件路径
    location /static {
        alias /django项目路径/static;
    }
    location / {
        # nginx转发动态请求到uWSGI
        uwsgi_pass django;
        include uwsgi_params;
    }
}

注意:要先把下载好的ssl证书中的nginx文件中的两个文件拷贝到服务器的/etc/nginx目录下。

配置http重定向https
upstream django {
   # nginx通过socket在环回接口地址的9001端口与本地的uWSGI进程通信
   # 支持ip:port模式以及socket file模式
   #server:同uwsgi配置中的本地端口配置;
   server 127.0.0.1:8000;
}
server {
    #listen 80; #添加http重定向要删除
    server_name 域名地址 公网IP;
    charset utf-8;
    client_max_body_size 75M;
    
    #listen 443;
    #ssl on;
    #Nginx 版本为 nginx/1.15.0以上则使用listen 443 ssl 代替 listen 443 和 ssl on
    listen 443 ssl;
    
    server_name  域名地址;
    #定义服务器的默认网站根目录位置
    root django项目路径;
    ssl_session_timeout 5m;
    ssl_certificate   /etc/nginx/1_xxx_bundle.crt;
    ssl_certificate_key  /etc/nginx/2_xxx.key;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    fastcgi_connect_timeout 300s;#原设置为300s
    fastcgi_send_timeout 300s;#原设置为300s
    fastcgi_read_timeout 300s;#原设置为300s
    # 如果写成/media/,nginx无法找到项目媒体文件路径
    location /media {
        alias /django项目路径/media;
    }
    # 如果写成/static/,nginx无法找到项目静态文件路径
    location /static {
        alias /django项目路径/static;
    }
    location / {
        # nginx转发动态请求到uWSGI
        uwsgi_pass django;
        include uwsgi_params;
    }
}
server {
    listen 80;
    #填写绑定证书的域名
    server_name 域名地址;
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
}

注意:必须注释掉上面的 listen 80;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号