阿里云购买的ssl证书,上传到服务器/root/project/目录下
vim /etc/nginx/nginx.conf --打开nginx配置文件
# 添加如下配置
server {
listen 443 default ssl;
listen [::]:443 default ssl;
server_name _;
ssl_certificate cert/domain name.pem; #路径/将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/domain name.key; #路径/将domain name.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;
ssl_prefer_server_ciphers on;
location / {
include uwsgi_params;
uwsgi_pass 172.16.101.72:8000;
}
location /static/ {
alias /root/project/static/;
expires 30d;
}
#保存退出
systemctl restart nginx -- 重启nginx让配置生效
修改项目中settings.py文件,添加https配置
vim /code/izufang/izufang/settings.py --打开配置文件
---------------------------------------------------------------------
#文件末尾添加https配置
# 保持HTTPS连接的时间
SECURE_HSTS_SECONDS = 3600
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
# 自动重定向到安全连接
SECURE_SSL_REDIRECT = True
# 避免浏览器自作聪明推断内容类型(避免跨站脚本攻击风险)
SECURE_CONTENT_TYPE_NOSNIFF = True
# 避免跨站脚本攻击(XSS)
SECURE_BROWSER_XSS_FILTER = True
# COOKIE只能通过HTTPS进行传输
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
# 防止点击劫持攻击手段(不允许使用<iframe>标签进行加载)
X_FRAME_OPTIONS = 'DENY
----------------------------------------------------------------------
#重启uwsgi
pkill -9 uwsgi --强杀uwsgi进程
nohup uwsgi --ini conf/uwsgi.ini & --启动uwsgi,后台运行
netstat -ntlp --可以查看
域名解析(绑定域名)
在阿里的域名控制中心,选择控制台,选择域名解析,如果域名没有备案的话,测试了赶紧删除域名解析,如果
备案过了,那就可以随便挂起

解决跨域问题
pip install django-cors-headers -- 三方库
配置settings.py文件
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', #添加
'django.middleware.common.CommonMiddleware', #添加
...
]
# # 配置允许跨域访问接口数据
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = ()
# # 跨域访问允许的请求头
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'token',
)
# # 跨域访问支持的HTTP请求方法
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
)
# # 避免浏览器自作聪明推断内容类型(避免跨站脚本攻击风险)
SECURE_CONTENT_TYPE_NOSNIFF = True
腾讯云配nginx https
...
upstream test01 {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /root/project/ssl/1_tel.njll.vip_bundle.crt; # crt绝对路径
ssl_certificate_key /root/project/ssl/2_tel.njll.vip.key; # key绝对路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_pass http://test01;
}
}
}
nginx 80跳443
server {
listen 80;
server_name _;
location / {
rewrite ^(.*)$ https://$host$1 permanent;
}
}
nginx开启gzip加速
gzip on;
gzip_buffers 4 32k;
gzip_types "*";
gzip_vary on;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_http_version 1.1;
版权声明:本文为weixin_44634704原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。