Apache基于IP的托pipe设置和httpd.conf指令

在阿帕奇,我想设置“基于IP的”托pipe2个网站,并启用他们的SSL。 但是,我不清楚如何configurationhttpd.conf文件。

问题:

1)我需要一个NameVirtualHost指令进行基于IP的设置? 在Apache的网站上,它说这是基于名称的需求,但没有提到基于IP。

2)如果需要NameVirtualHost,描述和数量必须与VirtualHost指令的数量相匹配吗? 例如,我可以说“NameVirtualHost *:80”和以后使用和? 或者,我需要“NameVirtualHost IP_ADDRESS_1:80”和“NameVirtualHost IP_ADDRESS_2:80”

3)如果ServerName是example1.com(没有“www”),它会有所作为?

4)在VirtualHost中,是否需要为ServerAlias设置一个值,比如IP本身?

我要分享的一件事情是,如果你有(可能包括)ssl.conf,你不应该添加“Listen 443”到你的httpd.conf,否则在重新加载时,apache会抛出一个“Address already in use:make_sock:无法绑定到地址[::]:443“错误。

#see above questions about below directive #NameVirtualHost *:80 #NameVirtualHost *:443 ... <VirtualHost IP_ADDRESS_1:80> DocumentRoot /www/example1 ServerName www.example1.com </VirtualHost> <VirtualHost IP_ADDRESS_2:80> DocumentRoot /www/example2 ServerName www.example2.org </VirtualHost> <VirtualHost IP_ADDRESS_1:443> DocumentRoot /www/example1 ServerName www.example1.com SSLEngine on SSLProtocol all SSLCertificateFile /home/web/example1_certs/public.crt SSLCertificateKeyFile /home/web/example1_certs/private.key SSLCACertificateFile /home/web/example1_certs/intermediate.crt </VirtualHost> <VirtualHost IP_ADDRESS_2:443> DocumentRoot /www/example2 ServerName www.example2.org #yes, in below, I'm using example1.com's certificate, which will throw a browser warning.. that's intentional SSLEngine on SSLProtocol all SSLCertificateFile /home/web/example1_certs/public.crt SSLCertificateKeyFile /home/web/example1_certs/private.key SSLCACertificateFile /home/web/example1_certs/intermediate.crt </VirtualHost> 

  1. 不,你只需要与你的例子IP的虚拟主机
  2. N / A
  3. 不,这不重要
  4. 这取决于您是否要在该IP上托pipe多个域。