ip1 上有很多第三方网站,他们都有自己的 A 记录需要更新。
我们希望转移到一个新的主机并使用 ip2,虽然我们可以在我们控制的事物上将 DNS 更新为 ip2,但我们有大约 100 个人在弄清楚如何操作时会遇到停机时间。
.. Apache 或 Nginx 有没有办法接收对 DomainA 的请求,并创建重定向或隧道到新服务器来提供资源?
如果它很慢(较慢),我也没关系,关键是正常运行时间。
我已经见过 mod proxy 等,但这是推荐的解决方案吗,或者有更高效的方法吗?
答案1
设置反向代理是理想的方法。如果新服务器和旧服务器之间的距离不是很大,响应时间的变化就很小。
正如您所提到的,如果您使用的是 apache,mod_proxy 是一种可能的解决方案。Nginx 内置了反向代理,不需要任何其他修改。
如果 nginx 是您的解决方案,则设置将如下所示:
upstream newserver {
server YourNewIpHere:port; # EDIT THIS
}
server {
server_name domains that needs to be forwarded space delimited; # EDIT THIS
listen 80; # for http
listen [::]:443; # for ssl
proxy_set_header X-Real-IP $remote_addr; # this passes the actual user IP to the new server
proxy_set_header Host $host; # same for the host
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
location / {
proxy_pass newserver;
}
}
官方指南:https://www.nginx.com/resources/admin-guide/reverse-proxy/
在接收 nginx 服务器上,您需要进行设置,以便转发地址是真实的地址。其语法如下:
set_real_ip_from IpOfOldServer; # EDIT THIS
real_ip_header X-Forwarded-For;
文档:http://nginx.org/en/docs/http/ngx_http_realip_module.html
如果您使用 apache 的 mod_proxy,则需要进行类似的设置。mod_proxy 的文档:https://httpd.apache.org/docs/2.4/mod/mod_proxy.html