SLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
ReSLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
(1)在SLB中配置2个监听;
HTTPS : 443 -> HTTP : 80,打开健康检查,健康检查中,要采用域名方式,而不是默认的ip方式;
HTTP : 80 -> HTTP : 8000,关闭健康检查;
(2)配置后端ECS上的nginx;
# 直接使用ip访问的流量,会跳转 server {listen 80 default_server; server_name _; # 301跳转 rewrite ^/(.*)$ https://www.abc.com/$1 permanent; } server { listen 8000;# 301跳转 rewrite ^/(.*)$ https://www.abc.com/$1 permanent; } server { listen 80; server_name abc.com www.abc.com; root /usr/local/webapps/abc/ROOT; .................... }
(3)测试跳转效果;
假设123.123.123.123是你的slb的ip地址,确保你的web目录下有aa.html;请测试以下6个地址,如果nginx配置正确,他们都应该跳转到'https://www.abc.com/aa.html';
123.123.123.123/aa.html
https://123.123.123.123/aa.html
abc.com/aa.html
https://abc.com/aa.html
www.abc.com/aa.html
https://www.abc.com/aa.html
赞0
踩0