首先我有一个域名:domain.com www.domain.com 解析到了阿里云的SLB负载均衡的IP上(公网IP)html
其次,SLB的配置为:前端
https 443 --> http 8080 //加密交给SLB后端
http 80 --> http 80 (这是常规配置,不多人会在浏览器上打上HTTPS访问吧!)浏览器
而阿里云的文档服务器
https://help.aliyun.com/knowledge_detail/6563505.html?spm=0.0.0.0.UOtUEjsession
HTTP和HTTPS都能访问到WEB内容,也就是说ROOT根目录是一致的,负载均衡
那。。我但愿访问HTTP的时候跳转到HTTPSdom
因此个人NGINX配置为阿里云
server {
listen 80;
server_name domain.com www.domain.com;
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
access_log logs/domain.com.80.log access;
}
server {
listen 8080;
server_name www.domain.com domain.com;
if ($host != 'www.domain.com' )
{
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
}加密
还有一种方法,主要都是为了不循环重定向的窘态-。-
SLB上:
HTTPS 443 --> HTTP 443
http 80 --> http 80
NGINX配置
server {
listen 80;
server_name domain.com www.domain.com;
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
access_log logs/domain.com.80.log access;
}
server {
listen 443;
server_name www.domain.com domain.com;
if ($host != 'www.domain.com' )
{
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
}
这下你们有点了解了不?若是按照阿里云的SLB配置文档
https://help.aliyun.com/knowledge_detail/6563505.html?spm=0.0.0.0.UOtUEj
配置成 https 443 --> http 80
http 80 --> http 80 (这是必须的嘛!)
那就会反复重定向了。。
另外,SLB前端协议若是是HTTPS,那只须要把证书放到阿里云上,ECS后端WEB就不须要配置证书相关信息了。反之,若是SLB前端协议是TCP,那就须要在ECS后端WEB配置SSL信息。
还有,前端是HTTP,后端是HTTPS,则会提示 The plain HTTP request was sent to HTTPS port
这里讲一下,若是使用TCP该怎么跳转!
对于添加到负载均衡实例后端的ECS,原则上不须要进行特别的配置。若是针对关联到负载均衡4层(TCP协议)服务的Linux系统的ECS,若是发现没法正常访问,须要确保系统配置文件/etc/sysctl.conf的如下三项为0:
net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0
若是部署在同一内网网段下的ECS之间有通讯需求,且发现有没法通讯的状况存在,那么须要检查以下参数的配置是否正确:
net.ipv4.conf.default.arp_announce =2 net.ipv4.conf.all.arp_announce =2
并使用sysctl –p更新配置。
咳咳,而后SLB配置:
TCP 80 --> TCP 80
TCP 443 --> TCP 443
NGINX配置:
server {
listen 80;
server_name domain.com www.domain.com;
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
access_log logs/domain.com.80.log access;
}
server {
listen 443;
server_name www.domain.com domain.com;
if ($host != 'www.domain.com' )
{
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
}
ssl on;
ssl_certificate ssl/domain.crt;
ssl_certificate_key ssl/domain.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
keepalive_timeout 70;
完成!
最后,可能有的网友不会加证书。
一、建立证书,名字写域名吧;证书类型服务器证书;证书区域对应
二、证书内容,就是你的CRT文件内容;有中间链的会有好几个
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
三、证书私钥,须要注意观察,若是你的文件内容是这样的内容
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
须要转换,由于阿里云SLB须要的是这种格式
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
在KEY文件路径下,把生成的PEM文件内容复制到私钥的框框里
openssl rsa -in domain.com.key -out domain.com.pem
最后的最后
若是咱们申请的SSL证书是标准版通配符 生成CSR的时候须要填写*.domain.com;
GODADDY证书购买有必定期限去开通,开通才开始算时间。