ec3*_*c30 4 apache maintenance virtualhost
我有一台运行Apache的服务器,其中有几个VirtualHost,例如domain1.example1.com domain2.example1.com等.所有这些webapp都是相关的.应用程序更新时; 我想同时在所有VirtualHosts的apache中启用维护模式,重定向到集中维护页面.现在我有一个虚拟主机配置:
<VirtualHost *>
ServerAdmin admin@website.com
DocumentRoot /var/www/website
ServerName website.com
ServerAlias www.website.com
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{REQUEST_FILENAME} !/maintenance.html
RewriteRule ^.*$ /maintenance.html [L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想通过在服务器上的某处重命名一个文件来启用该模式,例如
mv /app/system/maintenance.disabled /app/system/maintenance.html
Run Code Online (Sandbox Code Playgroud)
这样的事情是可能的,还是只能为每个VirtualHost单独配置?
Wel*_*lsh 13
创建一个名为的文件,maintenance.conf其中包含以下内容:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{REQUEST_FILENAME} !/maintenance.html
RewriteRule ^.*$ /maintenance.html [L]
Run Code Online (Sandbox Code Playgroud)
然后设置你的vhosts,如:
<VirtualHost *>
ServerAdmin admin@website.com
DocumentRoot /var/www/website
ServerName website.com
ServerAlias www.website.com
Include conf/maintenance.conf
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
然后,当您想要启用维护模式时,只需取消注释这些行maintenance.conf并重新启动apache即可.
或者你可以做maintenace.conf.disabled和maintenace.conf.enabled.然后创建一个符号链接maintenance.conf以指向文件的启用或禁用版本并退回apache.
你甚至可以在脚本中包装它.一个叫enabled-maintence-mode.sh并且disable-maintenance-mode.sh会删除并分别创建符号链接,并重新启动Apache.
| 归档时间: |
|
| 查看次数: |
10676 次 |
| 最近记录: |