我们在ip1上有很多第三方站点,他们有自己的Alogging要更新。
我们希望移动到一个新的主机,并使用IP2,虽然我们可以更新DNS到IP2我们控制的事情,我们有100个人将停机时,他们知道了。
有没有办法使Apache或Nginx能够接收到DomainA的请求,并创build一个redirect或隧道到新服务器来提供资源?
我很好,如果它是慢(呃),关键是正常运行时间。
我见过mod代理等,但是这是推荐的解决scheme,还是有一个更高性能的方式?
设置反向代理是理想的方法。 如果新服务器和旧服务器之间的距离不大,则响应时间的变化是非常小的。
正如你所提到的,如果你使用的是Apache,mod_proxy是一个可能的解决scheme。 Nginx有内置的反向代理,不需要任何进一步的mods。
如果nginx是你的解决scheme,那么设置将如下所示:
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
如果您使用mod_proxy进行apache,则需要执行类似的设置。 mod_proxy的文档: https : //httpd.apache.org/docs/2.4/mod/mod_proxy.html