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

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.xxx.com)直接重定向到指定路由(www.xxx.com/index)


    # 使用location /index 替换location /
    location / {
        # nginx转发动态请求到uWSGI
        uwsgi_pass django;
        include uwsgi_params;
    }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值