对于不同的虚拟主机,如何在同一 Linux 服务器上放置不同的主机条目? [关闭]

Posted

技术标签:

【中文标题】对于不同的虚拟主机,如何在同一 Linux 服务器上放置不同的主机条目? [关闭]【英文标题】:How to put different host entries on same linux server, for different virtual hosts? [closed] 【发布时间】:2012-03-10 13:31:51 【问题描述】:

设置是: 使用 apache 配置中的 vhost 条目将两个应用程序托管在同一 linux 服务器上。说:

http://greatapp.example.com

http://superapp.example.com

它们都具有向第三个 url 发送服务器端 http 请求的功能(使用 php cURL / file_get_contents):

http://apis.example.com

现在主机文件'/etc/hosts'中有一个主机条目

xx.xx.xx.xx       apis.example.com

这仅适用于 greatapp.example.com 代码,不适用于 superapp.example.com。

如何配置服务器以便 greatapps.example.com 使用主机条目, 但是 superapp.example.com 使用 apis.example.com

的公共 ip

【问题讨论】:

你可以看看这个***.com/questions/9357117/… 【参考方案1】:

不能直接完成:主机名空间是每个主机全局的。

您可以在具有不同 /etc/hosts 文件的虚拟机中运行其中一个 apache。

【讨论】:

【参考方案2】:

我会这样做:

    我的每个应用程序都有一个可以读取的配置文件。该配置文件可以指定要使用的 url。您可以使用现有库来读取配置文件。在本例中,我将使用 Zend_Config_Ini。以下是您的配置文件对于出色应用的外观:

[设置]

urls.third_party = 'xxx.xxx.xxx.xxx'

这是一个超级应用程序

[设置]

urls.third_party = 'http://apis.example.com'

2.例如使用 Zend_Config_Ini 从配置文件中读取 url:

require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('application.ini', 'settings');
$app_config = $config->toArray();

$third_party_url = $app_config['urls']['third_party'];

我认为这种方式更灵活,因为您可以轻松更改相关应用的配置文件中的 url。

【讨论】:

以上是关于对于不同的虚拟主机,如何在同一 Linux 服务器上放置不同的主机条目? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何设置虚拟主机以将同一 IP 上的两个端口指向不同的服务器名称?

如何在同一(但正在更改)IP 地址上处理 2 个不同主机的 ssh 主机密钥验证? [关闭]

用VMware虚拟Linux时如何创建共享文件夹?

是否可以用同一(ip, port)去连不同的服务?

在Linux下配一个IP与主机IP在同一个网段内

nginx 怎么配置 ip