我已经将 Apache 设置为 Java 应用程序服务器 (GlassFish) 的反向代理,我注意到即使在空闲的开发系统上也有大约 100 个连接处于 CLOSE_WAIT 状态:
sudo netstat -n -e -p -a -t | grep httpd | grep CLOSE_WAIT | wc -l
Run Code Online (Sandbox Code Playgroud)
我正在使用以下 HTTP 代理设置:
ProxyPass /myapp http://localhost:8080/myapp ttl=20 max=1 smax=0
ProxyPassReverse /myapp http://localhost:8080/myapp
Run Code Online (Sandbox Code Playgroud)
为什么所有这些联系都存在?我已经设置了“ttl=20 max=1 smax=0”,所以我认为所有连接都会在空闲系统上被清理。应用程序服务器是否没有尽其所能清理连接?
我在端口 443 上有一个基于名称的虚拟主机设置,以便将主机“apple.fruitdomain”上的请求代理到 apple-app,将主机“orange.fruitdomain”上的请求代理到 orange-app。这是有效的,但我想为每个添加一个 ServerAlias,以便将主机“apple”上的请求代理到 apple-app,将主机“orange”上的请求代理到 orange-app。如果我只是将 ServerAlias 指令添加到虚拟主机,则它不起作用。ssl.conf 如下:
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName apple.fruitdomain
ServerAlias apple
SSLProxyEngine on
ProxyPass /apple-app https://localhost:8181/apple-app
ProxyPassReverse /apple-app https://localhost:8181/apple-app
...
</VirtualHost>
<VirtualHost *:443>
ServerName orange.fruitdomain
ServerAlias orange
SSLProxyEngine on
ProxyPass /orange-app https://localhost:8181/orange-app
ProxyPassReverse /orange-app https://localhost:8181/orange-app
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我使用端口 80 进行类似的设置,那么 ServerAlias 可以工作...