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

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条)

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改