享阝 2019-10-12 13:12 采纳率: 100%
浏览 5452
已采纳

springcloud的gateway如何实现http/https访问

图片说明
环境:maven 3.3.9,
jdk1.8,
springboot2.1.3,
springcloud Greenwich。
模块:注册中心,
配置中心,
gateway网关,
用户系统
等。。。。。
需求:使用http/https访问gateway网关,如http://localhost:8080/USER/getuserinfo、https://localhost:8443/USER/getuserinfo
问题描述:我在网上找了一些关于springboot/springcloud配置http/https访问的帖子,基本都类似,例如:springboot2.0.x配置方法,参考https://www.cnblogs.com/lianggp/p/8136540.html 凉瓜皮

@Value("${http.port}")
    private Integer port;
@Bean
  public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
    return tomcat;
  }
    // 配置http
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");![图片说明](https://img-ask.csdn.net/upload/201910/12/1570856177_111958.png)

        connector.setPort(port);
        return connector;
    }

主要都是通过配置tomcat,在创建Connector。问题就出在这个connector上,connector是springboot-web依赖下的,但是在gateway中spring-boot-starter-webflux与spring-boot-web相互冲突,这是因为webfulx默认使用netty,在gateway网关启动的时候就可以看到

: DiscoveryClient_GATEWAY/GA-PC:gateway:8080 - registration status: 204
: Netty started on port(s): 8080
: Updating port to 8080
: Started GatewayApplication in 4.411 seconds (JVM running for 4.82)

所以,这个办法好像行不通,我看帖子里边最终用tomcat启的,不知道他们怎么弄得。
之后,我去官网看了看,各种路由器、过滤器,云里雾里看不太懂。不过发现这个RouteToRequestUrl Filter(将从request里获取的原始url转换成Gateway进行请求转发时所使用的url)过滤器好像可以起点作用,一通搞不顶用。放弃。
我真的不行了,求教各位大佬!!!!

  • 写回答

4条回答 默认 最新

  • Kevin.Y.K 2019-10-12 15:17
    关注

    思路错了吧,https跟网关没多大关系,网关本来就是http请求转发的,将网关注册到注册中心,网关配置路由到USER服务

    routes:
      - id: name_route
        uri: lb://USER
        filters:
          - StripPrefix=1
        predicates:
          - Path=/USER/**
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: