Answers:
您可能需要使用Apache的虚拟主机。这是在单个IP地址上托管多个域的一种受支持的方法。
http://httpd.apache.org/docs/2.2/vhosts/
具体来说,基于名称的虚拟主机:http : //httpd.apache.org/docs/2.2/vhosts/name-based.html
Apache2支持根据域名提供不同的内容,即使所有这些域名都解析为相同的IP地址。每个域名都由一个虚拟主机处理,因此基于名称的虚拟主机。
这是两个域的示例配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:80>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
但是,请注意,这仅适用于纯HTTP连接,不适用于HTTPS(基于SSL的HTTP):基于名称的虚拟主机依赖于知道所请求的名称,但是只有在加密的SSL之前,Apache才能知道此信息。建立连接。
如果您还需要使用HTTPS进行安装,则需要依赖SSL协议的扩展,即服务器名称指示(SNI)(RFC4366)。基本上,启用SNI的客户端(例如:Web浏览器)在建立加密的SSL连接时会添加额外的纯文本信息,从而允许服务器在SSL连接就绪之前就知道所请求的名称。
所有浏览器尚不支持SNI。在撰写本文时,根据Wikipedia所述,这些工具可以:
通过HTTPS托管多个可通过HTTPS访问的基于名称的虚拟主机,需要启用mod_ssl并添加与上述示例类似的配置:
Listen 443
NameVirtualHost *:443
# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:443>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
请记住,使用SSL需要您为域购买SSL证书-或生成一些自动签名的证书,并配置Apache以将其用于SSL连接。
sudo service apache2 restart