我见过这样的情况:IIS 中的零停机上传/回滚,但对于小型网站来说,ARR 似乎有点过头了。我想知道是否有这样的 web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><rewrite><rules>
<rule name="Rewrite to current production version">
<match url="(.*)" /><action type="Rewrite"
url="production-version-0/{R:1}" />
</rule></rules></rewrite></system.webServer>
</configuration>
要部署,请放入目录production-version-1
,然后覆盖 web.config 以使其指向新版本。这是一个 PHP 网站。我会后悔这样做吗?
答案1
除了每个请求都重写(静态内容也一样)的明显缺点之外,它还可能给自引用脚本带来问题。向 PHP 询问文件名的脚本(例如$_SERVER['SCRIPT_NAME']
)将获得重写的 URL,而不是用户浏览器中显示的 URL。
答案2
不可能。点。
瞧,你的问题是,只使用一个系统,你永远无法达到零停机时间,因为有时某些东西出现故障,并且/或者你需要由于修补而重置。要点。
玩弄这个要求不会给你带来任何好处。你至少需要 2-3 个系统,然后你就可以轻松使用 NLB,所以不需要拉任何东西。