Apache使用虚拟主机技术,可以在一台服务器上运行多个网站。每个网站共享服务器的IP地址,通过客户端请求来告诉服务器指向到相应的网站。虚拟主机技术极大地减轻了服务器管理员的负担。在CPU、内存和硬盘资源足够的情况下,服务器中部署的网站数量不受限制。
创建目录结构
在FreeBSD 12操作系统中,Apache服务器存放网站的目录为:/usr/local/www/apache24/data/。在我们需要对每个网站创建一个单独的目录。下面以example.com,example.net,example.org三个网站为例。
$ sudo mkdir -p /usr/local/www/apache24/data/example.com/public_html
$ sudo mkdir -p /usr/local/www/apache24/data/example.net/public_html
$ sudo mkdir -p /usr/local/www/apache24/data/example.org/public_html
更改以上目录权限为755,允许所有人对以上目录读取和执行。
$ sudo chmod -R 755 /usr/local/www/apache24/data/example.com/public_html
$ sudo chmod -R 755 /usr/local/www/apache24/data/example.net/public_html
$ sudo chmod -R 755 /usr/local/www/apache24/data/example.org/public_html
确保以上目录中的文件继承根目录的所有者。
$ sudo find /usr/local/www/apache24/data/example.com/public_html -type d -exec chmod g+s {} \;
$ sudo find /usr/local/www/apache24/data/example.net/public_html -type d -exec chmod g+s {} \;
$ sudo find /usr/local/www/apache24/data/example.org/public_html -type d -exec chmod g+s {} \;
创建配置文件
在FreeBSD 12操作系统中,Apache的默认配置文件为:/usr/local/etc/apache24/httpd.conf,同时Web服务器也会扫描目录:/usr/local/etc/apache24/Includes,该目录下的文件也会合并到配置文件中。
为每个网站创建单独的配置文件。下面以example.com为例。
$ sudo nano /usr/local/etc/apache24/Includes/example.com.conf
配置文件内容如下。
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
DocumentRoot /usr/local/www/apache24/data/example.com/public_html
ErrorLog "/var/log/example.com.log"
CustomLog "/var/log/example.com.log" common
</VirtualHost>
重启Apache使之生效。
$ sudo service apache24 restart
创建网站并测试
接下来给每个网站添加默认首页,就可以对外提供服务了。以example.com网站为例,在根目录下创建index.html文件。
$ sudo nano /usr/local/www/apache24/data/example.com/public_html/index.html
文件内容如下:
<html>
<head>
<title>The example.com website</title>
</head>
<body>
<h1>Welcome to <b>example.com</b> website.</h1>
<p>This content confirms that the <b>example.com</b> website is working correctly.</p>
</body>
</html>
最后访问:http://example.com ,测试能否正常显示,其他网站的操作方法类似。以上就是在FreeBSD云服务器上,使用Apache运行多个网站的方法。