为同一个VirtualHosts声明多个端口

Modified on: Sun, 04 Aug 2019 11:40:03 +0800

为同一个VirtualHosts声明多个端口:

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>

如何为'domain.localhost'声明一个新端口('listen',ServerName,...)?

如果我添加以下代码,apache对于“domain.localhost”的所有其他子域也是如此(太多)(subdomain1.domain.localhost,subdomain2.domain.localhost,...):

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
作者:HBruijn,user65567

最佳答案

这个问题有些含糊不清,但我会尽力帮助。

如果您希望相同的虚拟主机侦听多个端口,则执行以下操作:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

<VirtualHost *:80 *:8080>
  ServerName some.domain.name
  ServerAlias some.other.domain.name
  ....
</VirtualHost>

一般来说,除非需要使用其他协议,否则不要定义多个基于名称的同一域名的VirtualHost。

对于基于SSL名称的虚拟主机,您必须格外小心:根据定义,同一IP上不能有多个证书:端口,因此,为了避免证书错误,它必须是wilcard证书,涵盖所有服务域名。

作者:ExtraT

相关问答

添加新评论