开发者社区> 问答> 正文

SLB https 重定向问题

    使用SLB后,对于https请求,如果后台进行了redirect重定向,请求就变成了http。
    怎么设置才能让请求在重定向后不变,仍然是原来的https?

展开
收起
asks 2016-04-01 15:09:20 12526 0
6 条回答
写回答
取消 提交回答
  • 后端开发者,阿里云用户
    同问,nginx服务器怎么配置,只需要在后端配置好SSL就可以了么?

     
     

    2018-08-10 13:06:58
    赞同 展开评论 打赏
  • ReSLB https 重定向问题
    我们也碰到了这个问题,解决方法如下描述,希望能给大家带来一点儿帮助。
    我们项目使用的是Spring Boot,Web服务器是内置的Tomcat,在yaml文件中添加如下配置:
    logging:
              level:
                      org.apache.catalina.valves.RemoteIpValve: DEBUG

    如果你用的是properties,一行就行:
    logging.level.org.apache.catalina.valves.RemoteIpValve=DEBUG
    重启服务,盯着日志输出,当看到类似下行时
    DEBUG o.a.catalina.valves.RemoteIpValve 180 - Incoming request /a/b/c with originalRemoteAddr '170.151.94.xxx'
    为Tomcat添加配置:
    server:
          use-forward-headers: true
          tomcat:
                internal-proxies: 170\.151\.94\.\d{1,3}


    properties对应的是
    server.use-forward-headers: true
    server.tomcat.internal-proxies: 170\\.151\\.94\\.\\d{1,3}

    你懂的,IP肯定是我随便写的啦,换成你自己日志里的;就我观察,点分十进制的前三部分是固定的,有变化的是第四部分,所以用正则来匹配。
    再次重启服务,然后试下https和http之间的跳转看看效果。

    这里要设置internal-proxies的原因是,Spring Boot的默认配置
    server.tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
            192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\
            169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\
            127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
            172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
            172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
            172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.
    不满足我们的需求。


    参考链接:
    h*ttps://stackoverflow.com/questions/25455969/spring-boot-with-embedded-tomcat-behind-apache-proxy#answer-30234549
    h*ttps://docs.spring.io/spring-boot/docs/1.5.12.RELEASE/reference/htmlsingle/#howto-enable-https  
    h*ttps://docs.spring.io/spring-boot/docs/1.5.12.RELEASE/reference/htmlsingle/#howto-customize-tomcat-behind-a-proxy-server
    PS: 去掉*号,因为Aliyun说我5贴未到不允许发链接



    -------------------------

    回 7楼云上珠玑的帖子
    没明白你的意思。你是在阿里云的SLB后面又挂了自己的nginx?
    2018-07-17 20:24:43
    赞同 展开评论 打赏
  • ReSLB https 重定向问题
    同样的问题,提交工单也没具体指导!就依据检测自己程序,关键是我们程序在在其他环境下运行都正常的。
    2017-01-07 17:19:45
    赞同 展开评论 打赏
  • 回 2楼花腩强的帖子
    您好,我按照你的方式配置,可以实现https访问重定向后还是https了,但是接口请求的返回数据不能返回了。
    2016-06-08 16:26:03
    赞同 展开评论 打赏
  • ReSLB https 重定向问题
    版主这么回答就不好了。。
    楼主用的是什么后端服务器,如果是TOMCAT,解决办法如下(样例是NIO):
        <Connector port="8080"
                   proxyName="你的域名"
                   proxyPort="443"
                   scheme="https"
                   secure="true"

                   protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000" URIEncoding="UTF-8" useBodyEncodingForURI="true"
                   redirectPort="8443" />

    至于那个redirectPort 8443,没有意义,无视即可。

    -------------------------

    回 3楼lili-a的帖子
    你得核实接口客户端是否配置好了证书
    2016-05-17 20:00:23
    赞同 展开评论 打赏
  • 码农|Coder| Pythonista
    您在设置重定向时,仍使用https
    2016-04-02 06:32:34
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
负载均衡是如何支撑几亿手机微博用户访问的高性能负载均衡研发 立即下载
大规模场景下KubernetesService 负载均衡性能 立即下载
《应用型负载均衡ALB产品解读》 立即下载