我有一个代理,在遇到错误403时会重定向到Java Web-App。
此应用程序检查用户的凭据:如果用户已获得授权,则客户端IP地址将添加到授权IP地址列表中,并包含在Apache2.4的httpd.conf中。
因此,将使用以下命令重新启动代理:
synchronized (Runtime.getRuntime()) {
Runtime.getRuntime().exec("...apachectl -k restart").waitFor();
}
这是在Windows下使用代理进行本地测试的,它运行得很好;但是当我开始使用Linux(Ubuntu 14)时,行为发生了变化,例如“连接被重置”或“没有收到数据”(分别是Firefox,Chrome)。
代理(Apache 2.4)和Web服务器(Tomcat)的进程之间是否存在关系?
答案 0 :(得分:0)
原来,重新启动会使代理重现完全相同的"待定"重新启动操作后立即请求。
要考虑httpd.conf中的新值,我所要做的就是用 graceful <替换 restart 指令EM> 强>
synchronized (Runtime.getRuntime()) {
Runtime.getRuntime().exec("...apachectl -k graceful").waitFor();
}
&#13;
这样,该过程不会重启,但httpd.conf中的更改将生效,因此整个机制不会受到影响。