AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 477642
Accepted
Synchro
Synchro
Asked: 2013-02-12 07:22:02 +0800 CST2013-02-12 07:22:02 +0800 CST 2013-02-12 07:22:02 +0800 CST

使用 HAProxy 进行透明转发和选择性重定向

  • 772

我正在设置一个临时的 haproxy 实例来帮助测试 iPhone 应用程序的新后端。我的计划不是使用专门制作的应用程序或越狱,而是设置一个所有电话数据都将通过的代理,但让它与主机标头匹配并将它们转发到尚未启用的新服务器。简而言之,除了某些特定主机名之外,我希望 haproxy 像一个开放代理一样工作。匹配主机名并转发它们工作得很好,但我似乎无法使开放代理位工作。我在 Ubuntu Precise 上使用 stock haproxy 1.4.18 包,具有​​ stock 全局设置,加上这些代理设置:

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,所以我希望它直接转发到 serverfault,而不是本地服务器。我不确定哪个指令会在后端执行此操作,或者是否有一些前端指令会执行此操作。就代理而言,它或多或少是一个空操作。

(是的,我知道开放代理不好;这是一个临时测试配置,一次只能交互运行几分钟)

更新:我发现option http_proxy它完全符合我的需要,除了它不进行 DNS 查找,只进行显式 IP,所以像这样的后端几乎就在那里:

backend passthrough
    option http_proxy
    option httpclose

我知道我可能可以使用其他东西,但我恰好真的很喜欢 haproxy!

haproxy
  • 2 2 个回答
  • 15877 Views

2 个回答

  • Voted
  1. Best Answer
    longneck
    2013-02-12T07:27:31+08:002013-02-12T07:27:31+08:00

    无法配置 haproxy 来为您执行此操作。haproxy 中的后端服务器必须明确命名。

    难道你不能改用专用的 DNS 服务器将电话定向到正确的服务器吗?

    • 1
  2. Gilad Sharaby
    2016-12-06T08:51:18+08:002016-12-06T08:51:18+08:00

    您可以使用 haproxy 作为一个简单的 http 代理,具有以下配置 -

    backend direct_forward
    option httpclose
    option http_proxy
    

    你可以在这里阅读更多

    • 1

相关问题

  • 具有动态路由的代理服务器

  • nginx 访问日志忽略某些请求

  • HAProxy 和“分片”

  • 带有 HAProxy 的远程 IP

  • SSL 网站的高可用性

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve