将所有 TLD 请求转发到另一台服务器

将所有 TLD 请求转发到另一台服务器

所以,我遇到了一个紧急情况,但不幸的是,我没有足够的能力来处理它。客户公司的一名 IT 技术人员更改了域名的 A 记录,然后去度假了。他是唯一有权访问的人,而且在他从丛林中再次出现之前,没有办法将其改回来。

他应该指出只是将 Awww.记录更改为新 IP,指向我们托管的服务器mysite.com- 但是,他将*A 记录更改为新 IP - 这意味着所有子域名现在实际上都已失效(mail.exchange.secure.等)。最初,*A 记录指向另一台分别处理所有子域名请求的服务器。

虽然我无法访问 DNS 控件,但我可以完全访问*A 记录现在指向的 DigitalOcean 服务器和控制面板。

我可以在 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;
    }
}

感谢您的帮助。抱歉,我写得太长了。

答案1

对于 HTTP 来说这可能可行,但对于 HTTPS 来说服务器可能没有正确的证书,而对于其他协议(例如电子邮件),HTTP 服务将无法完成这项工作。

也许可以在 tcp 模式下启动 HAProxy,监听连接进入的端口并代理到“真实”服务器上的正确端口?对于某些服务,这可能不太合适,因为连接的明显来源将是 HAProxy 框。

更好的方法可能是访问 DNS。一定有某种机制可用于访问该帐户;客户公司中没有其他人与 DNS 提供商建立联系吗?或者您是否可以重置该人的电子邮件密码,然后发送密码重置电子邮件?

编辑

为了使 HAProxy 能够正常工作,你需要安装 HAProxy - 这需要EPEL 即将启用,如果尚未完成。则yum install haproxy

编辑/etc/haproxy/haproxy.cfg;不确定其中的默认配置到底是什么样的,但您需要listen先清除所有部分,同时保留globaldefaults部分。

然后,对于您需要发送到另一台服务器的每个监听端口,您将需要一个这样的部分(请注意,如果您添加端口 80,则需要先停止 nginx 服务):

listen port-443
    bind :443
    mode tcp
    balance roundrobin
    server realserver 192.0.2.1:443

(其中192.0.2.1是应该处理连接的服务器的 IP)。

答案2

另一种方法是直接致电 DNS 服务提供商,并向他们解释发生了什么。我猜,在您提供一些“证据”证明您是域的所有者/代表或其他身份后,他们可能会授予您访问权限或为您更改访问权限...

相关内容