nginx:https配置及兼容http(http强制转换为https)

在nginx使用中,尝试使用https安全网络连接,并兼容http连接,进行如下配置:

http默认配置
upstream django_01{
     
        server unix:///var/uwsgi/django_01.sock;
}

# 服务器配置
server {
     
        # 监听端口
        listen          80;
        # 域名
        server_name    www.xxxxxx.com;
        charset         utf-8;

        # 最大文件上传尺寸
        client_max_body_size    75M;

        # 静态文件访问的url
        location /static {
     
                # 静态文件地址
                alias /home/djangoProject/django_01/static_dist;
        }

        location /media {
     
                # 图片静态文件
                alias /home/djangoProject/django_01/media;
        }

        # 最后,发送所有的非静态文件请求到django服务器
        location / {
     
                uwsgi_pass django_01;
                # uwsgi_params文件地址
                include         /etc/nginx/uwsgi_params;
        }

}
https兼容http配置
  • 在阿里云或腾讯云购买的域名处申请SSL证书,申请成功后,将证书下载并放置到/etc/nginx/(类似目录)下,然后按照如下代码进行配置。详情可以参考腾讯云关于Nginx服务器的SSL证书配置指导
upstream django_01{
     
        server unix:///var/uwsgi/django_01.sock;
}

# 服务器配置
server {
     
        # 监听端口
        listen          443 ssl;
        # 域名
        server_name     www.xxxxxx.com;
        charset         utf-8;

        #证书文件名称
        ssl_certificate /etc/nginx/ssl/1_www.xxxxxx.com_bundle.crt;
        #私钥文件名称
        ssl_certificate_key /etc/nginx/ssl/2_www.xxxxxx.com.key;
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;


        # 最大文件上传尺寸
        client_max_body_size    75M;

        # 静态文件访问的url
        location /static {
     
                # 静态文件地址
                alias /home/djangoProject/django_01/static_dist;
        }

        location /media {
     
                # 图片静态文件
                alias /home/djangoProject/django_01/media;
        }
        # 最后,发送所有的非静态文件请求到django服务器
        location / {
     
                uwsgi_pass django_01;
                # uwsgi_params文件地址
                include    /etc/nginx/uwsgi_params;
        }

}


server {
     
        listen 80;
        server_name www.xxxxxx.com;
        # 把HTTP的域名请求转为https
        return 301 https://$server_name$request_uri;
}

你可能感兴趣的:(网络基础,nginx,https,http,ssl)