將所有 TLD 請求轉發到另一台伺服器
所以,緊急情況已經落在我的腿上,不幸的是我沒有能力處理它。客戶公司的一名 IT 技術人員更改了域的 A 記錄,然後去度假。他是唯一可以進入的人,在他從叢林中重新出現之前,無法將其更改回來。
他應該只將
www.
A 記錄指向一個新 IP,指向我們正在託管的伺服器mysite.com
- 但是,他將*
A 記錄更改為新 IP - 這意味著所有子域現在實際上都已失效(mail.
,exchange.
,secure.
等)。最初,*
A 記錄指向另一個單獨處理所有子域請求的伺服器。雖然我無法訪問 DNS 控制項,但我確實可以完全訪問 DigitalOcean 伺服器和控制面板,以了解
*
A 記錄現在指向的位置。在 DigitalOcean 伺服器上,我可以通過 DNS 控制面板(儘管一目了然)或通過
virtual.conf
文件(見下文)正確地將任何請求(即mail.mysite.com
)轉發到然後應該正確處理請求的正確IP?作為參考,伺服器是執行 nginx 的 CentOS 6.5 x64。目前處理傳入請求的伺服器塊如下:
server { listen 80; server_name mysite.com www.mysite.com; root /var/www/html/mysite.com/; error_page 403 404 500 502 503 504 = /server_error.php; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
謝謝你的幫助。為 TL 道歉;DR。
對於可能有效的 HTTP,但對於 HTTPS,伺服器可能沒有正確的證書,對於其他協議(例如電子郵件),HTTP 服務將無法完成這項工作。
也許在 tcp 模式下站立 HAProxy,監聽連接進入的埠並代理到“真實”伺服器上的正確埠?這對於某些服務可能不太適用,因為連接的明顯來源將是 HAProxy 框。
更好的方法可能是訪問 DNS。必須有某種機制可以用來訪問該帳戶;客戶公司中沒有其他人與 DNS 提供商建立聯繫嗎?或者您可以重置該人的電子郵件密碼,然後發送密碼重置電子郵件嗎?
編輯:
要讓 HAProxy 在這種情況下工作,您需要安裝 HAProxy -如果尚未啟用 EPEL,則需要啟用它。然後
yum install haproxy
。編輯
/etc/haproxy/haproxy.cfg
;不確定那裡的預設配置到底是什麼樣的,但是您需要先清除所有listen
部分,同時保留global
anddefaults
部分。然後,對於您需要發送到其他伺服器的每個偵聽埠,您將需要這樣的部分(請注意,如果添加埠 80,則需要先停止 nginx 服務):
listen port-443 bind :443 mode tcp balance roundrobin server realserver 192.0.2.1:443
(
192.0.2.1
應該處理連接的伺服器的 IP 在哪裡)。