我正在设置一个临时back实例,以帮助测试iphone应用程序的新后端。我的计划是建立一个代理,让所有的电话数据都通过,但是它要匹配主机头,并将它们转发到尚未启用的新服务器,而不是专门制作的应用程序或越狱。简而言之,除了某些特定的主机名之外,我希望host充当一个开放的代理。匹配主机名并转发它们是完美的,但我似乎无法使打开的代理位工作。我在Ubuntu上使用了一个包含股票全局设置的股票proxy 1.4.18包,再加上以下代理设置:
frontend myapp
bind 0.0.0.0:8080
default_backend passthrough
acl mydomain hdr_end(Host) .example.com
use_backend front if mydomain
backend front
server front 127.0.0.1:80
backend passthrough
server ???因此,前端位于端口8080,默认情况下将请求推送到passthrough后端。在此之前,它会检查acl以查看请求是否针对我域中的主机名,如果是,则将其转发给本地应用程序。
问题在于passthrough后端。我希望它直接将请求传递给请求的主机,而不是本地端点。我放在那里的配置不起作用,但我不知道它应该说什么。例如,如果我为http://www.serverfault.com做了一个请求,它将与我的ACL不匹配,所以我希望它直接转发给服务器,而不是本地服务器。我不知道哪个指令会在后端执行这个任务,或者是否有一些前端指令可以完成这个任务。就代理而言,这或多或少是一种不可行的做法。
(是的,我知道开放代理是不好的;这是一个临时的测试配置,一次只交互运行几分钟)
更新:我发现option http_proxy做了我需要的事情,除此之外,它不执行DNS查找,只执行显式的is,所以这样的后端就在那里了:
backend passthrough
option http_proxy
option httpclose我知道我可能需要其他的东西,但我只是碰巧非常喜欢haproxy!
发布于 2013-02-11 15:27:31
没有办法配置haproxy来为您完成此操作。haproxy中的后端服务器必须显式命名。
你就不能用一个专用的DNS服务器把电话直接送到正确的服务器上吗?
发布于 2016-12-05 16:51:18
您可以使用haproxy作为一个简单的http代理,配置如下-
backend direct_forward
option httpclose
option http_proxy您可以阅读更多关于is 这里的信息。
https://serverfault.com/questions/477642
复制相似问题