2013-02-10 98 views
0

这可能是一个重复的问题,但我一直在考虑它。我知道,Apache支持在一台服务器上托管许多网站。但我想知道实施。在一台服务器上运行很多网站

服务器将拥有单个IP地址。 TCP始终是80端口。那么怎样才能在单台机器上运行10个不同的网站。还有DNS,有一对一的映射。

我在想,可能一些调整是在HTTP协议中完成的,但不能想到确切和最好的解决方案。

感谢

+0

*这可能是一个重复的问题,但我一直在想它长* - 你或许应该花更多的时间使用搜索功能。/google然后。 – Niko 2013-02-10 18:39:15

+0

必须有一些机制来区分不同的网站。如果端口80是您使用的唯一端口,并且您只使用一个DNS名称,那么您对服务器如何在不同站点之间登录HTTP请求有何期望? – Joe 2013-02-10 18:40:50

+0

DNS实际上是一个多对多的映射。 – Perception 2013-02-10 18:53:14

回答

1

您可以在Apache的配置增添许多VirtualHost项如下:

<VirtualHost *:80> 
ServerName www.domain.tld 
ServerAlias domain.tld *.domain.tld 
DocumentRoot /www/domain 
</VirtualHost> 

<VirtualHost *:80> 
ServerName www.otherdomain.tld 
DocumentRoot /www/otherdomain 
</VirtualHost> 

这基本上提示阿帕奇的反应不同,基于请求其域名服务不同的文件。

更多信息可以在Apache的文档中找到:http://httpd.apache.org/docs/2.2/vhosts/name-based.html

+0

从这个问题中不清楚是否有一个DNS名称或多个名称,如果有多个名称,这是正确的答案。 – Joe 2013-02-10 18:43:00

+0

的确如此:我认为如果IP地址和端口始终是相同的,那么他必须是多个域,他提到了这一点。 – ChrisC 2013-02-10 18:45:38

+0

好吧,如果有人运行多个Rails应用程序,例如,您可以使用相同的端口和DNS名称,但仍然指示流量来分隔“应用程序”,如http://serverfault.com/questions/405688/multiple-rails-应用上,同一子域。 – Joe 2013-02-10 18:49:19

相关问题