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
-> 在一页上以日语整理的。包括安装、配置、工具、命令和调优。

广告
将在 10 秒后关闭
bannerAds