SLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
ReSLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
我的方案是这样的
后端系统架构为:nginx + php + php-fpm + mysql
后端nginx:
配置server端口为 :8123,不用配置SSL,将SSL证书交给SLB处理,这是我真正的网站内容。
配置server端口为:8080,所有http的请求都rewrite为https请求,返回给SLB处理
SLB配置(证书要配好):
80端口监听后端8080端口
443端口监听后端8123端口
这样用户访问的流程是这样的:
1.如果是https的请求直接由443端口转到后端我的真实网站8123端口获取内容,SSL数据加密的任务交给SLB处理。
2.如果是http的请求从SLB的80端口转至后端的8080端口,由8080端口重写成https请求,转至SLB的443端口,对应流程1。
这样不管用户用http还是https最终的请求都是https的请求。
当然最关键的一点是要让SLB的IP能够访问你后端nginx的端口,否则SLB会检测端口异常,配好防火墙是关键。
赞0
踩0