我的 nginx.conf 有两个不同的服务器块,一个指向主站点,另一个指向我的 api 服务器。现在,每当我将某些东西部署到其中一个服务器并停止服务器时,这两个服务器都会停止。有没有办法停止/重新启动一个特定的服务器而不干扰另一个服务器?
==============编辑:
我一直做错了。我不应该重启 nginx。就我而言,我只想让 Passenger 识别我的代码更改并刷新。只需tmp/restart.txt
在目录中创建一个文件Rails.root
就可以了。
对于面临同样问题的人,请tmp/restart.txt
在根路径中创建一个空文件,每次想要部署时只需触摸它即可。
touch tmp/restart.txt
欲了解更多详情,请查看https://stackoverflow.com/questions/4480078/how-to-make-nginx-be-aware-of-rails-code-changes
答案1
不,没有选项可以重新启动单个虚拟服务器实例。但是,当应用服务器升级时,根本不需要这样做。
答案2
当现有连接必须工作时使用
kill -HUP `cat /path_to/nginx/file.pid`
HUP changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux),
starting new worker processes with a new configuration, graceful shutdown of old worker processes
就您而言,不清楚为什么需要重新启动 nginx?
答案3
您可以使用 reload 而不是 restart
#nginx -s reload
或者
sudo service nginx reload