我们有一个自定义 Java Web 应用程序。我们正在不同的 VPS(不同的提供商、不同的位置)的实例中设置它。每个实例都是独立且自包含的。我们有几个此类实例的文档,并将继续添加它们。
例如:
Instance 1: http://server1/app1
Instance 2: http://server1/app2
Instance 3: http://server2/app3
目前,我们正在使用 myapp 的 DNS 中的 A 记录映射子域。然后服务器使用 apache 反向代理将其映射到应用程序。
client1.myapp.com > server1 >> http://server1/app1
client2.myapp.com > server1 >> http://server1/app2
client3.myapp.com > server2 >> http://server2/app3
clientN.myapp.com > servern >> http://anyserver/appN
使用反向代理服务器有什么区别或好处?
例如:
client1.myapp.com > proxyserver >> http://server1/app1
client2.myapp.com > proxyserver >> http://server1/app2
client3.myapp.com > proxyserver >> http://server2/app3
clientN.myapp.com > proxyserver >> http://anyserver/appN
使用代理而不是 DNS 记录是否存在任何性能问题?据我所知,所有请求都会转到代理服务器,而不是直接转到服务器
谢谢你的时间
答案1
我认为你搞混了(也许你读过一些你书中的答案之后)上一个问题)。
DNS 将解析:
client1.myapp.com
到10.10.10.10
client2.myapp.com
到10.10.10.10
App
然后,反向代理将根据请求标头将您重定向到右侧:http://client1.myapp.com
重定向至http://client1.myapp.com/app1
(事实上http://10.10.10.10/app1
)http://client2.myapp.com
重定向至http://client2.myapp.com/app2
(事实上http://10.10.10.10/app2
)
DNS
无法做到第 (2) 点
Reverse Proxy
无法做到第 (1) 点
DNS 和反向代理的作用并不相同,这里两者都需要。
因此,对于服务器名称解析使用DNS
,对于应用程序重定向使用Reverse Proxy
。
事实上,这正是你实际做的:)