- GlassFish配置。
进入$GLASSFISH_HOME/domains/domain1/config,编辑domain.xml,注意如果是集群或使用其他Glassfish的instance,目录会有所不同。
找到名称为http-listener-1的<http-listener>配置组,添加下面三项:
<property name="cometSupport" value="true"/>
<property name="authPassthroughEnabled" value="true"/>
<property name="proxyHandler" value="com.sun.enterprise.web.ProxyHandlerImpl"/>
第一行是启用Comet支持,后面两行是Apache SSL转发需要的。
此外找到<jvm-options>-client</jvm-options>,改为-server。 - 配置mod_proxy HTTP转发
打开httpd.conf文件,在末尾添加:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.cometserver.com
ErrorLog logs/cometserver-error_log
CustomLog logs/cometserver-access_log common
ProxyRequests Off
ProxyPass /comet/ http://localhost:8080/comet/ max=1500
ProxyPassReverse /comet/ http://localhost:8080/comet/
</VirtualHost>
这里将mod_proxy配置加入了一个虚拟主机里面,只在 www.cometserver.com虚拟主机中生效。ProxyPass转发所有客户端http请求,ProxyPassReverse转发所有服务器端redirect请求。 - 调整Apache Httpd最大连接数
在httpd.conf中加入或修改如下配置:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 1500
MaxClients 1500
MaxRequestsPerChild 4000
</IfModule>
以上配置设置最大连接数为1500 - 配置mod_proxy HTTPS转发
打开ssl.conf或自定义的mod_ssl配置文件,在</VirtualHost>之前添加:
SSLProxyEngine on
ProxyRequests Off
ProxyPass /comet/ http://localhost:8080/comet/ max=1500
ProxyPassReverse /comet/ http://localhost:8080/comet/
配置基本上相同,只是多了SSLProxyEngine on开启SSLProxy。 - web.xml配置
在web.xml中配置CometServlet:
<servlet>
<servlet-name>QuotationServlet</servlet-name>
<servlet-class>com.xued.fxtrader.comet.QuotationServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>QuotationServlet</servlet-name>
<url-pattern>/quote</url-pattern>
</servlet-mapping> - Comet Servlet中response Header
response.addHeader("Expires", "0");
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Transfer-Encoding", "Chunked");
经以上配置,即可实现通过访问80端口透明代理访问Comet Http streaming服务,响应无阻塞延迟。
没有评论:
发表评论