在 apache 設定 virtual host

用途

在同一台 server 上運行多個服務,例如 HTTP、FTP、EMAIL 等。

設定檔位置

傳統設定位置為/etc/httpd/conf/httpd.conf

apache2 的設定位置為 /etc/apache2/sites-available/000-default.conf
或是在 /etc/apache2/sites-available 下建立一個專用的設定檔,並 link 到 /etc/apache2/sites-enabled
預設情況是 /etc/apache2/sites-enabled/*.conf 都會被使用,詳細內容可以參見 /etc/apach2/apach2.conf

修改完設定後重起服務,才會生效。

模式

網址名稱對應(Name-based)

在同一台機器以及 ip 下,架設不同的網站。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<VirtualHost *:80>
ServerName ilovecats.com
DocumentRoot "/www/cat"
</VirtualHost>

<VirtualHost *:80>
ServerName ilovedogs.com
DocumentRoot "/www/dogs"
</VirtualHost>

<VirtualHost *:80>
ServerName api.ilovedogs.com
DocumentRoot "/www/api/dogs"
</VirtualHost>

IP位址對應(IP-based)

在同一台機器但不同 ip 下,架設不同的網站。

1
2
3
4
5
6
7
8
9
<VirtualHost 192.168.1.123:80>
ServerName ilovecats.com
DocumentRoot "/www/cat"
</VirtualHost>

<VirtualHost 123.123.123.123:8888>
ServerName ilovedog.com
DocumentRoot "/www/dog"
</VirtualHost>

Reference

https://zh.wikipedia.org/zh-tw/%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA

https://notfalse.net/53/http-virtual-host