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 / 问题 / 433125
Accepted
HonoredMule
HonoredMule
Asked: 2012-09-29 15:32:41 +0800 CST2012-09-29 15:32:41 +0800 CST 2012-09-29 15:32:41 +0800 CST

如何使用通配符虚拟主机定向反向代理请求

  • 772

我有兴趣运行一个反向代理,它后面有 2-3 个虚拟机。每个内部服务器将运行多个虚拟主机,而不是在代理上手动配置每个单独的虚拟主机(各种虚拟主机来来去去太频繁了,这不实用),我想使用一些可以在顺序查找合适的后端服务器。例如:

Server 1: *.dev.mysite.com
Server 2: *.stage.mysite.com
Server 3: *.mysite.com, dev.mysite.com, stage.mysite.com, mysite.com
Server 4: *

在上面的配置中,task.dev.mysite.com 将转到服务器 1,dev.mysite.com 将转到服务器 3,yoursite.stage.mysite.com 将转到服务器 2,www.mysite.com 将转到服务器 3,并且yoursite.com 到服务器 4。

到目前为止,我已经研究过使用 Squid、Varnish 和 nginx。我对它们各自的可取性和一般适用性有自己的看法,但如果它们中的任何一个能够以这种方式处理动态服务器选择并且不需要每个虚拟主机配置,则不是很明显。另一方面,Apache 可以方便而简单地做到这一点,但除此之外(除了众所周知和熟悉之外)似乎非常不适合部分性能服务任务。

性能实际上还不是一个主要问题,但如果另一个系统性能好得多并且还可以处理所需的“免提”配置,那么使用 Apache 似乎是愚蠢的。但是,经常需要为所有生产服务调整网关,并冒着全网中断的风险……如果 Apache 成为一个太小的瓶颈,那么以后也会为自己设置更长的停机时间。

这些(或其他)反向代理中的哪一个可以做到/会做得最好?


也许我应该将其作为一个单独的问题发布,但如果 Apache 是唯一可行的选择,那么 apache2.2(Ubuntu 12.04.1)中的 apache-mpm-event 的安全/可靠/可预测性如何,特别是对于专用反向代理?据我了解,从 2.4 开始,Event MPM 被宣布为“安全”,但尚不清楚在 2.4 中达到稳定性是否对各种发行版的官方/稳定包渠道中可用的旧 (2.2) 版本有任何影响。

apache-2.2
  • 2 2 个回答
  • 1468 Views

2 个回答

  • Voted
  1. boburob
    2012-09-29T15:36:40+08:002012-09-29T15:36:40+08:00

    就个人而言,我使用Pound。我会更详细地介绍这个问题,因为它是一个购物问题,所以很快就会被关闭。

    我重新设计了大部分前端服务器以通过一些 Pound 反向代理,这让我大大降低了 SSL 证书成本和 IP 使用率。

    我已经让它们运行了大约 9 个月,没有出现任何问题,因此我可以保证其可靠性。

    您还可以按照您想要的方式在设置中进行通配符匹配:

     HeadRequire "Host: .*.dev.mysite.com*"
     HeadDeny    "Host: .*.stage.mysite.com.*"
    
    • 0
  2. Best Answer
    Pax
    2012-09-29T16:32:50+08:002012-09-29T16:32:50+08:00

    如果这是你想做的,清漆绝对可以做到这一点。

    您在 vcl 文件中定义后端,然后在 vcl_recv 中您可以使用一些正则表达式,如下所示:

    if (req.http.Host ~ "\.dev\.mysite\.com$") {
      set req.backend = server1;
    elsif (req.http.Host ~ "\.stage\.mysite\.com$") { 
      set req.backend = server2;
    elsif ...
    

    我个人不建议使用相同的清漆服务器进行暂存和生产,我至少会在另一个端口上运行一个单独的实例,但这既不在这里也不在那里。

    • 0

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

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