Apache的各种备忘录,虚拟主机
这是我在使用Apache进行试验和参考网站时做的笔记。
环境 –
EC2、Amazon Linux 2 (CentOS 7 系统) Apache 2.4
在同一服务器内配置多个主机(子域名)以运行,使用VirtualHost进行设置。
希望实现的目标是能够通过HTTP访问同一台服务器上的三个网址:”ドメイン.com”、”www.ドメイン.com”和”www2.ドメイン.com”(各自具备不同的文档根目录)。
(*前提是在DNS中设置了三个A记录。)
在/etc/httpd/conf/httpd.conf文件中添加以下内容。
<VirtualHost *:80>
ServerName ドメイン.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.ドメイン.com
DocumentRoot /var/www/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www2.ドメイン.com
DocumentRoot /var/www/www2/html
</VirtualHost>
只要重新加载配置文件,就可以通过http访问“ドメイン.com”、“www.ドメイン.com”和“www2.ドメイン.com”这三个网址。
$ sudo systemctl reload httpd
此外,如果在DNS中也將「www4.域名.com」設置為訪問同一個伺服器,則最初提到的「域名.com」的設置將被應用。如果通過IP地址訪問,同樣會應用「域名.com」的設置。
同樣地,如果按照下面的設置文件進行編寫,將應用「www2.域名.com」的設置。
<VirtualHost *:80>
ServerName www2.ドメイン.com
DocumentRoot /var/www/www2/html
</VirtualHost>
<VirtualHost *:80>
ServerName ドメイン.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.ドメイン.com
DocumentRoot /var/www/www/html
</VirtualHost>
接下来,我们来谈谈ServerAlias。
<VirtualHost *:80>
ServerName ドメイン.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.ドメイン.com
DocumentRoot /var/www/www/html
# ServerAlias * #ワイルドカード
ServerAlias www3.ドメイン.com www4.ドメイン.com
</VirtualHost>
<VirtualHost *:80>
ServerName www2.ドメイン.com
DocumentRoot /var/www/www2/html
</VirtualHost>
当访问”www3.ドメイン.com”或”www3.ドメイン.com”时,会查看与”www.ドメイン.com”相同的/var/www/www/html的DocumentRoot。
如果要查看相同的DocumentRoot,使用ServerAlias比添加VirtualHost标签更清晰。
ServerAlias可以使用空格分隔多个指定,并且可以指定IP地址或通配符(*)。
另外,关于DocumentRoot路径。
<VirtualHost *:80>
ServerName www2.ドメイン.com
DocumentRoot /var/www2/html
</VirtualHost>
在上述设置中,我们将DocumentRoot指定为var直下,但是当我们访问”http://www2.ドメイン.com”时,显示的却是Apache的测试页面。我没有仔细调查,但似乎在指定DocumentRoot时存在一些限制。
虚拟主机的参考网站
在一台Apache Web Server上设置多个域名
设置虚拟主机的别名
-> 正在说明ServerAlias
在CentOS 7上配置Apache httpd 2.4的虚拟主机设置步骤
配置Apache2虚拟主机
开机时启动Apache的设置
$ sudo systemctl enable httpd
您可以通过运行”systemctl status httpd”命令来检查当前设置是启用还是禁用。
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
其他参考网站
Apache HTTP服务器版本2.4文档
Apache 2.4.34
-> 在一页上以日语整理的。包括安装、配置、工具、命令和调优。