Linux
為 docker 關閉時設置備份頁面
我的 web 應用程序包含在 docker-containers 中,並且從
docker-compose up
. 該設置將其暴露在埠 80 上,其餘的發生在容器內,這要歸功於 traefik 等。如果我在安裝了本地網路伺服器(如 apache)的機器上啟動它,它會顯示“埠 80 已在使用中”並拒絕啟動,這很清楚。必須停止伺服器。我想要一個備份/錯誤頁面,上面寫著“正在建設”或容器未執行時的任何內容(由於錯誤或更新期間或其他原因)。
因此,對於更新,我將不得不
- docker-compose 停止/停止
- 啟動阿帕奇
- 做我的事
- 停止阿帕奇
- 碼頭工人組成
現在我想知道我是否可以簡化這一點:是否有可能以非阻塞方式提供 fallback.html,或者換句話說:是否可以設置 apache 或使用另一個網路伺服器不阻塞埠 80 並允許另一個應用程序(在這種情況下是 docker,但對於每個為自己服務的應用程序,問題都是相同的)來使用它,但是當另一個應用程序沒有服務時提供它?
- 在不同的埠上公開您的應用程序
- 將主機上的 Apache 配置為反向代理
- 使用ErrorDocument 指令顯示您的自定義資訊頁面
這是來自我用於這種情況的配置:
<VirtualHost *:443> ServerName host.example.com DocumentRoot /var/www/html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorDocument 502 /error_503.php ErrorDocument 503 /error_503.php ProxyRequests Off ProxyPreserveHost On ProxyPass /app/ http://localhost:9090/ ProxyPassReverse /app/ http://localhost:9090/ # ... rest of the configuration </VirtualHost>
PHP 腳本在計劃停機期間顯示的消息與在它之外顯示的消息不同。