环境: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)过滤器好像可以起点作用,一通搞不顶用。放弃。
我真的不行了,求教各位大佬!!!!