对于不同的虚拟主机,如何在同一 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 上的两个端口指向不同的服务器名称?