Virtualhost
Apache Tomcat 相當於 Apache httpd 的虛擬主機是什麼?
在 Apache httpd 中,如果我想將 Web 應用程序與域名連結起來,我會創建一個虛擬主機。
在 Apache Tomcat 中,如果我想連結一個 Web 應用程序,有沒有等效的方法?
虛擬主機是 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; } }
- IIS(綁定
<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>
- Apache 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" }