![Apache Tomcat 与 Apache httpd 的虚拟主机等效吗?](https://linux22.com/image/751698/Apache%20Tomcat%20%E4%B8%8E%20Apache%20httpd%20%E7%9A%84%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E7%AD%89%E6%95%88%E5%90%97%EF%BC%9F.png)
在 Apache httpd 中,如果我想将 Web 应用程序与域名链接起来,我会创建一个虚拟主机。
在 Apache Tomcat 中,如果我想链接一个 Web 应用程序,是否有等效的方法?
答案1
虚拟主机是 HTTP/1.1 协议的一个功能,由Host
HTTP 标头提供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" }