Nginx
如何對沒有外部 IP(私有網站)的實例實施 Cloud Monitoring Uptime 檢查
Cloud Monitoring 正常執行時間檢查允許使用者向資源發送請求以查看它是否響應。
由於檢查是在 Google Cloud 基礎架構之外執行的,因此需要一個外部 ip。
有沒有辦法對沒有公共 IP 的網站(http 請求)實施正常執行時間檢查?
TL;DR:是的,通過使用具有外部 IP 的堡壘主機可以查詢到達內部站點並使用代理(NGINX、SquidProxy 等)將您的健康檢查請求從外部服務傳遞到您的內部站點。
你需要什麼:
- 在您的私有VMS的同一VPC中具有外部 IP 的虛擬機(沒有公共 IP 的虛擬機)。
- 具有外部 IP 的虛擬機(現在稱為探測虛擬機)與託管您的內部網站的虛擬機之間的通信。
- (可選,但強烈推薦)您的網站應該有一個健康檢查網頁。如果站點和系統正常並且最好是身份驗證保護,則此頁面應返回 200。
過程:
- 在您的內部網站所在的同一 VPC 中創建一個 VM。您可以創建執行您喜歡的 linux 發行版的基本 linux VM 。VM 的大小可以是n1-standard-1或 e2-standard-2,大小實際上取決於您要監控的站點數量。您可能需要根據需要調整 VM 的大小。
- 允許您的探測虛擬機與託管您站點的內部虛擬機之間進行通信。建議您只允許內部站點使用的埠。
- 限製到您的探測虛擬機的所有流量,以避免任何類型的數據洩漏。使用Google云防火牆來實現這一點。(注意:不要忘記將您的 IP 列入埠 22 的白名單,以便管理您的探測虛擬機)
- 允許 HTTP(埠 80)流量到您的探測虛擬機到Cloud Monitoring ips。
- 在你的探針 vm上安裝NGINX Opensource。
如果您想跳過安裝過程,您可以選擇使用NGINX PLUS並使用Google Cloud MarketPlace進行安裝
你也可以使用NGINX Docker 容器來完成這個任務。
- 將 NGINX配置為反向代理
- 在 Cloud Monitoring 中創建正常執行時間檢查。
關於如何配置 nginx 的一些提示和技巧
當您按照 NGINX 的說明安裝 NGINX 時,您將在該過程結束時獲得功能正常的 NGINX。但是您可能需要額外的配置才能實現目標。
- 修改文件
/etc/nginx/conf.d/default.conf
以響應任何不包含有效 HOST 標頭的請求的 404:server { listen 80 default; location / { return 404; } }
/etc/nginx/conf.d/
在目錄下為您要監控的每個站點創建一個配置文件。即/etc/nginx/conf.d/finance-sites.conf
。不要忘記 .conf 終止。- 為您要監控的每個站點設置一個虛假主機,並且不要忘記在Stackdriver Monitoring中設置主機標頭。
- 每次更改配置時不要忘記檢查語法
nginx -t
並重新載入配置。nginx -s reload