
我的伺服器資源有限,但我想託管 50 個不同版本的產品。我有非常複雜且不幸的是有缺陷的產品,我希望每個版本都可以訪問。如果報告任何錯誤,我們將能夠調查並確定此問題首次發生的確切時間。
但由於每個網站都有 5 GB 的資料和 1 GB 的資料庫,因此不可能讓所有網站始終保持開啟。我們的伺服器出現 mysql 錯誤,並且伺服器由於記憶體溢出而沒有回應。
我想知道是否有辦法讓這 50 個不同的網站預設為停用。如果有人嘗試造訪 version-5-1.ourdomain.com,則會顯示等待畫面並在啟動時重定向。
如果超過 30 分鐘沒有造訪某個網站,請將其關閉並釋放資源。
答案1
可能有更好的方法,但您應該能夠在主機上使用反向代理並結合 systemd 套接字啟動。當請求進入套接字時,systemd 可以啟動容器並轉發請求(它將阻塞,直到容器啟動並接收請求),然後使用某些東西監視日誌文件,當訪問中沒有顯示任何內容時記錄例如5 分鐘,然後停止容器。
答案2
我遇到了同樣的問題(想要按需啟動 Web 伺服器......沒有 50(!)不同的副本在同一主機上運行)。現有的答案提供了一個完全正確的解決方案,但仍然需要一些跑腿工作來設定它,而且我還想要一些可以在容器本機環境中輕鬆部署的東西,這在 systemd 中效果不佳。
為此,我創建了以下項目,現在正在生產中運行:https://github.com/radian-software/sleeping-beauty
它並不完美,但可能適合您的用例,或者可能會進行調整以適應。