gpt4 book ai didi

multithreading - Tomcat 6下Servlet中重启Apache2.4

转载 作者:行者123 更新时间:2023-11-28 23:32:06 25 4
gpt4 key购买 nike

当遇到错误 403 时,我有一个重定向到 Java Web 应用程序的代理。

此应用程序检查用户的凭据:如果用户获得授权,客户端 IP 地址将添加到授权 IP 地址列表中,并包含在 Apache2.4 的 httpd.conf 中。

因此,将使用以下方式重新启动代理:

synchronized (Runtime.getRuntime()) {
Runtime.getRuntime().exec("...apachectl -k restart").waitFor();
}

这是在 Windows 下使用代理在本地测试的,它工作得很好;但是当我开始在 Linux (Ubuntu 14) 上工作时,行为发生了变化,出现了诸如“连接已重置”或“未收到数据”(分别为 Firefox、Chrome)之类的错误。

Proxy(Apache 2.4)和Web Server(Tomcat)的进程有关系吗?

最佳答案

事实证明,重新启动 会使代理在重新启动操作后立即重现完全相同的“待处理”请求。

要考虑 httpd.conf 中的新值,我所要做的就是将 restart 指令替换为 graceful.

synchronized (Runtime.getRuntime()) {
Runtime.getRuntime().exec("...apachectl -k graceful").waitFor();
}

这样,进程不会重新启动,但 httpd.conf 中的更改会生效,因此不会影响整个机制。

关于multithreading - Tomcat 6下Servlet中重启Apache2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com