Apache Tomcat 与 Apache httpd 的虚拟主机等效吗?

Apache Tomcat 与 Apache httpd 的虚拟主机等效吗?

在 Apache httpd 中,如果我想将 Web 应用程序与域名链接起来,我会创建一个虚拟主机。

在 Apache Tomcat 中,如果我想链接一个 Web 应用程序,是否有等效的方法?

答案1

虚拟主机是 HTTP/1.1 协议的一个功能,由HostHTTP 标头提供RFC 7230, 5.4。每个现代 Web 服务器都支持它,但是配置指令的名称和格式略有不同:

  • Apache HTTP 服务器VirtualHost

     <VirtualHost *:80>
         ServerName example.com
         ServerAlias www.example.com
         DocumentRoot "/var/www/examplecom"
     </VirtualHost>
    
  • Nginx(服务器块)

     server {
         listen 80;
         server_name example.com www.example.com;
         root /var/www/examplecom;
         location / { 
             try_files $uri $uri/ =404; 
         }
     }
    
  • 互联网信息服务 (捆绑<binding>

     <site name="Example" id="2">
        <application path="/" applicationPool="Example">
           <virtualDirectory path="/" physicalPath="C:\inetpub\examplecom" />
        </application>
        <bindings>
           <binding protocol="http" bindingInformation="*:80:example.com" />
           <binding protocol="http" bindingInformation="*:80:www.example.com" />
        </bindings>
     </site>
    
  • 阿帕奇 Tomcat<Host />

     <Engine name="Catalina" defaultHost="example.com">
         <Host name="example.com" appBase="webapps_examplecom">
             <Alias>www.example.com</Alias>
         </Host>
     </Engine>
    
  • Lighttpd$HTTP["host"] 匹配主机实际上是最接近协议的)

     HTTP["host"] =~ "^(|www\.)example\.com$" {
         server.document-root = "/var/www/examplecom"
     }
    

相关内容