阿里云负载均衡配置http跳转https

2

环境:
阿里云两台ECS,负载均衡,nginx,tomcat

后端nginx:
配置server端口为 :8081,不用配置SSL,将SSL证书交给SLB处理。

SLB配置
配置两个监听,分别是:
前端80端口,后端服务81端口
前端443端口监听后端80端口
如下图:

slb监听

#nginx负载
upstream duweixin.net{
        server localhost:8081;
        server 10.17.232.2:8087;#另一台负载
}
server {
        listen       80;
        root   /data/www/h5/;
        index  index.html index.htm;
        server_name  duweixin.net www.duweixin.net;

        location / {
            proxy_pass http://duweixin.net;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_redirect off;
        }

}
#前端如果输入端是 http://duweixin.net,81端口,强制跳转到 https://duweixin.net
server {
        listen       81;
        return 301 https://duweixin.net $request_uri;
}

总结

1.如果是https的请求直接由443端口处理,SSL数据加密的任务交给SLB处理。
2.如果是http的请求从SLB的80端口转至后端的81端口,由81端口重写成https请求。

所以不管用户用http还是https最终的请求都是https的请求。
关键的一点是要让SLB的IP能够访问你后端nginx的端口,我的是81,否则SLB会检测端口异常。

补充:
最近发现还有另一种特别简单的办法

使用阿里云CDN加速域名可以设置,如下图

图片描述


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

akuma · 2016年12月13日

不能 slb 直接到后端的 tomcat 吗?一定要加一个 nginx 吗?

回复

asoren 作者 · 2016年12月15日

可以,但是tomcat比较浩资源

回复

xeb1314 · 2017年02月09日

upstream duweixin.net{

    server localhost:8081;
    server 10.17.232.2:8087;#另一台负载

} 是干嘛使得,我部署的环境跟你的环境一样,阿里负载均衡配置完监听后,健康检查异常,443交给slb,分别在两台负载上nginx监听80端口,但是访问https总是报502的错误,是不是nginx配置的有问题,帮忙解决下,谢谢

回复

载入中...