当前位置: 首页 > news >正文

12建网站最简单的网页制作

12建网站,最简单的网页制作,网站设计制作哪家好,惠州市网站建设公司0. 目录 1. 需求背景2. 实现3. 额外 - 其它Servlet容器实现3.1 Undertow3.2 Tomcat 4. 相关 1. 需求背景 浏览器针对单个网站地址(ipport)存在“6个请求”限制#xff1b;通过多子域配置可以突破这个限制#xff0c;增加网站的响应效率#xff0c;尤其是针对三维服务这类大… 0. 目录 1. 需求背景2. 实现3. 额外 - 其它Servlet容器实现3.1 Undertow3.2 Tomcat 4. 相关 1. 需求背景 浏览器针对单个网站地址(ipport)存在“6个请求”限制通过多子域配置可以突破这个限制增加网站的响应效率尤其是针对三维服务这类大请求量服务。 注意 多子域的目的是为了突破浏览器6个请求的限制(【浏览器请求并发限制】与后端应用提供的业务功能无关。这个配置项的底层实现原理其实就是为当前网站增加几个访问端口比如除了原始的123端口之外还可以通过456777端口访问仅此而已没有任何业务功能上的变化和影响。浏览器对于同一个网址采取的是 ip port 的组合认定只有两者都相同才会认定为同一个网站这也是通过开放多个端口就可以突破该项限制的原因。 2. 实现 本项功能需求的应用场景比较窄因此这里直接给出解决方案不做原理性解读。 以下三个类拷贝到项目中即可。 // 1/3 MultiportNettyWebServer // 组合模式 public class MultiportNettyWebServer implements WebServer {private final ListNettyWebServer servers;public MultiportNettyWebServer(ListNettyWebServer servers) {this.servers servers;}Overridepublic void start() throws WebServerException {servers.stream().forEach(server - server.start());}Overridepublic void shutDownGracefully(GracefulShutdownCallback callback) {servers.stream().forEach(server - server.shutDownGracefully(callback));}Overridepublic void stop() throws WebServerException {servers.stream().forEach(server - server.stop());}Overridepublic int getPort() {return -1;}}// 2/3 MultiportNettyReactiveWebServerFactory public class MultiportNettyReactiveWebServerFactory extends NettyReactiveWebServerFactory {Overridepublic WebServer getWebServer(HttpHandler httpHandler) {NettyWebServer webServer (NettyWebServer)super.getWebServer(httpHandler);ListNettyWebServer newArrayList CollUtil.newArrayList(webServer);// 这里并不是原地修改, 生效的是方法的返回值对象; 所以这里还得塞回去...// 这个思路其实很好, 保证对象的不可变....HttpServer httpServer Convert.convert(HttpServer.class, ReflectUtil.getFieldValue(webServer, httpServer));httpServer httpServer.port(81);ReflectUtil.setFieldValue(webServer, httpServer, httpServer);webServer (NettyWebServer)super.getWebServer(httpHandler);newArrayList.add(webServer);httpServer Convert.convert(HttpServer.class, ReflectUtil.getFieldValue(webServer, httpServer));httpServer httpServer.port(82);ReflectUtil.setFieldValue(webServer, httpServer, httpServer);return new MultiportNettyWebServer(newArrayList);} }// 3/3 MultiportNettyReactiveWebServerFactory /*** COPY FROM {code ReactiveWebServerFactoryConfigurationEmbeddedNetty}*/ Configuration public class MultiportNettyWebServerConfig {BeanConditionalOnMissingBeanReactorResourceFactory reactorServerResourceFactory() {return new ReactorResourceFactory();}BeanNettyReactiveWebServerFactory nettyReactiveWebServerFactory(ReactorResourceFactory resourceFactory,ObjectProviderNettyRouteProvider routes, ObjectProviderNettyServerCustomizer serverCustomizers) {NettyReactiveWebServerFactory serverFactory new MultiportNettyReactiveWebServerFactory();serverFactory.setResourceFactory(resourceFactory);routes.orderedStream().forEach(serverFactory::addRouteProviders);serverFactory.getServerCustomizers().addAll(serverCustomizers.orderedStream().collect(Collectors.toList()));return serverFactory;}}3. 额外 - 其它Servlet容器实现 3.1 Undertow Slf4j Configuration ConditionalOnClass({Servlet.class, Undertow.class, SslClientAuthMode.class}) // 参考自: ServletWebServerFactoryConfiguration.EmbeddedUndertow.java public class WebServerMultiPortConfigByUndertow implements WebServerFactoryCustomizerUndertowServletWebServerFactory {/*** 多个端口*/Overridepublic void customize(UndertowServletWebServerFactory factory) {if (ArrayUtil.isEmpty(multiports)) {log.warn(### there is no multi-port config. so skip it);return;}final String[] finalMultiports new String[]{81, 82};factory.addBuilderCustomizers(s - {log.warn(### 启用Undertow容器, 配置多端口 [ {} ], Arrays.toString(finalMultiports));Arrays.stream(finalMultiports).forEach(port - s.addHttpListener(Convert.toInt(port), 0.0.0.0));});} } 3.2 Tomcat Slf4j Configuration // 参考自: ServletWebServerFactoryConfiguration.EmbeddedTomcat.java ConditionalOnClass({ Servlet.class, Tomcat.class, UpgradeProtocol.class }) public class WebServerMultiPortConfigByTomcat implements WebServerFactoryCustomizerTomcatServletWebServerFactory {/*** 多个端口*/Overridepublic void customize(TomcatServletWebServerFactory factory) {factory.addAdditionalTomcatConnectors(addtionalConnetors());}private Connector[] addtionalConnetors() {final String[] multiPorts new String[]{81, 82};log.warn(### 启用Tomcat容器, 配置多端口 [ {} ], Arrays.toString(multiPorts));ListConnector connectors new ArrayList();for (String s : multiPorts) {Connector connector new Connector(HTTP/1.1);connector.setPort(Integer.parseInt(s));connector.setScheme(http);connectors.add(connector);}return connectors.toArray(new Connector[] {});} }4. 相关 【浏览器请求并发限制】Spring Boot中为Tomcat配置多个监听端口
http://www.pierceye.com/news/303471/

相关文章:

  • 做网站宣传多少钱黔东南网站设计公司
  • 网站开发人员职业分析wordpress数据库替换网址
  • ps切片工具做网站道滘镇网站仿做
  • 电子商务他们的代表网站html5视频网站模板
  • 广州网站建设乐云seo上海到北京高铁最快几小时
  • wordpress 音乐网站网站建设开发软件有哪些方面
  • 湛江网站营销163网站是jsp做的吗
  • 营山网站建设陕西做网站的公司地址
  • 十大网站黄页免费加盟办厂代加工
  • 上海 网站建设google深圳建网站 (报价)
  • 响应式做的比较好的网站校园网认证登录入口
  • 专业网站设计学校空间放两个网站
  • 万户网站建设网站流量突然增加
  • 中山住房和建设局网站小程序搭建的方式
  • 网站标题怎么做游戏推广工作好做吗
  • 网页设计制作网站模板免费静态网页设计模板免费
  • 成都的网站建设开发公司黄石网站建
  • 便宜的做网站公司网上下载的网页模板怎么用
  • 网站开发制作软件网站运营推广主要做什么的
  • 网页设计怎么建立网站网站馆店精准引流怎么推广
  • iis6建设网站上海到北京飞机航班查询
  • 做网站 创业 流程什么是网站标题
  • 怎么查询菠菜网站做没作弊沙朗做网站公司
  • 网站的建设周期与阶段广州王牌seo
  • 连江建设局网站手机网站建设套餐内容
  • 收录网站排名wordpress 搜索过滤
  • 上海网站建设代码长春又出现一例
  • 国外包装设计欣赏网站wordpress4.9.4环境要求
  • 免费域名网站查询好的营销网站设计公司
  • 网站说服力在百度上怎么建立网站