Apache正常重启和用户体验的影响


10

graceful在生产服务器上重新启动Apache 是否安全?正常重启会产生什么影响?会有什么影响(如果有)?是否会有不利影响(例如,即使是短时间的停机)?

我已经考虑了以下资源,但仍不清楚会对用户产生什么影响:

Answers:


9

执行正常重启时,现有连接应运行到正常完成状态,此时它们的工作人员将终止。新工作人员应该已经开始处理新的连接。

您应该不会注意到任何连接失败或页面加载缓慢的情况,但实际上,当主线程重新加载配置时,您可能会短暂看到新的连接队列(我的时间不到半秒钟)

如果要重新启动以获取新的配置,则可能存在配置错误,这可能会阻止服务器正确地重新启动。

如果服务器处于异常状态,则可能无法正常重启(也许这就是您考虑正常重启的原因)


1

如果Apache提供的是静态文件,并且没有像这样的东西充当前台,那就很顺利了。大多数用户甚至不会注意到,而那些这样做的用户会认为它是正常的故障。Apache将不会满足新的请求,直到满足旧的请求为止,因此您将等待所有这些请求完成。如果有人以68KB / s的速度下载500MB的文件,则您可能要等待很长时间,在此期间不会再进行其他处理。

如果Apache位于应用服务器的前面,情况可能会大不相同。根据经验,与该服务器交互的UX将非常糟糕,直到启动,加载应用服务器并预热缓存为止。


5
另外,/etc/init.d/httpd configtest在生产服务器上继续进行任何类型的Apache重新启动之前,务必先执行。
Citylight 2014年

的确如此-运行configtest非常重要。IIRC,我认为在Apache的更高版本中,可能会在正常重启之前执行隐式configtest,如果它无法通过configtest,它将无法继续重启。
stellarchariot 2014年

5
“ Apache不会在满足旧请求之前提供新请求,因此您将等待所有请求全部处理完毕。如果有人以68KB / s的速度下载500MB文件,则您可能会等待很长时间,在此期间,其他任何时间都不会服务正在发生。” 这是不准确的。立即上载配置,并在上一代完成其最后一个请求的同时创建新的子进程,接受连接和处理请求。
covener 2014年

0

前述的优美参数告诉httpd通过首先发信号通知其所有子进程以完成其当前任务来开始重新启动进程。所有子进程(处理http请求的子进程)完成任务后,它们将关闭;如果当前没有任何子进程正在处理请求,则它们将立即关闭。

而停止尝试立即终止所有子进程将可能使最终用户挂起。我的首选是优美的—对于您的企业级服务器来说是一个更好的选择–因为它比突然终止服务客户的子流程要友好。许多管理员,尤其是程序员使用stop来停止其服务器,这通常是因为他们不知道优美的环境甚至不存在。

链接:https//www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ 链接

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.