【问题标题】:Apache - multiple sites on one IP, domain and port with SSLApache - 在一个 IP、域和端口上使用 SSL 的多个站点
【发布时间】:2015-01-17 16:40:28
【问题描述】:

是否可以在使用 SSL 时在同一个 IP、域和端口上运行多个 apache 站点(意味着 标签完全相同,并且没有给出 ServerName)(不确定 SSL 是否在这里有所不同)?

我想将我的 Web 服务分成 etc/apache2/sites-available 中的文件,以便能够按需激活或停用它们。基本上 Apache 应该只获取所有文件并在内部将它们串在一起,但让我有可能 a2dissite 某些部分。

进一步说明: “站点”是指etc/apache2/sites-available 目录中的文件。在这种情况下,“Web 服务”是某些应用程序,例如 phpMyAdmin 或在 Apache 上运行的 Etherpad,并且我想将其配置(例如 Alias 或 ProxyPass)写入其自己的配置文件(“站点”),

【问题讨论】:

  • same IP, domain and port 以及服务器将如何决定返回什么内容?仅当每个“站点”都存在于其自己的文件夹中时。
  • @Cheery 它不需要决定,因为所有文件都是互斥的。正如我所说,它可能只需要在内部将来自同一个 VirtualHost 的所有设置串在一起。
  • 如果您不使用 SSL,这是可能的,因为 SSL 需要每个域的唯一 IP。
  • @Prix 但是我只有一个IP和一个域名。
  • @RikuXan 定义multiple sites 和什么网络服务,不要以为我在这里满足你的要求。

标签: apache virtualhost


【解决方案1】:

简短的回答是否定的。

SSL 在 TCP 和 HTTP 之间运行。但是虚拟主机名是通过 HTTP 发送的。那么 SSL 如何知道虚拟主机使用哪个证书呢?

有一种方法可以做到这一点 - 基本上是通过 TCP 启动 HTTP,然后在发送虚拟主机名(在 Host 标头中)之后切换到 SSL。然而,这很复杂,容易出错,通常被认为是个坏主意。

最佳做法是为每个 SSL 设置一个 IP。一台机器可以有多个IP地址,一个网口也可以有多个IP地址。

【讨论】:

  • 但我不想区分虚拟主机名,所有站点都具有相同的 IP、域、端口和虚拟主机名。我知道它在技术上会起作用,因为我可以通过将所有内容放在一个文件中来实现相同的效果。但是我不知道 Apache 是否允许我将这些指令拆分为多个文件并通过同一个 VirtualHost 进行逻辑连接。
  • 这个答案是错误的(至少现在是这样)。 Server Name Indication 允许多个 SSL 站点共享一个 IP 地址,即使使用不同的域也是如此。 Browsers 和 IIS 8.0 都支持 SNI。 Apache 也是。
  • 我同意。 HTTPS 技术得到了显着改进。一些旧浏览器仍然无法管理(我在看你 IE6)但它们通常不值得担心
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 2016-04-11
  • 2014-12-31
  • 1970-01-01
  • 2023-04-10
  • 2013-10-16
  • 1970-01-01
  • 2016-04-04
相关资源
最近更新 更多