内容
什么是 Apache 虚拟主机?
虚拟主机 术语是指在单个系统上运行多个网站的方法,例如 host1.domain.com、host2.domain.com 或 www.domain1.com、www.domain2.com 等。 虚拟主机有两种类型 Apache,即 基于IP 虚拟主机和 基于名字的 虚拟主机。 使用基于 IP 的虚拟主机,您可以在同一系统上托管多个网站或域,但每个网站/域具有不同的 IP 地址。 使用基于名称的虚拟主机,您可以在同一个 IP 地址上托管多个网站/域。 如果您想从单个物理服务器或 VPS 托管多个网站和域,虚拟主机会很有用。 希望你有基本的想法 Apache 虚拟主机。 今天,我们来看看如何配置 Apache Ubuntu 18.04 LTS 中的虚拟主机。
下载 – 免费电子书:“Apache HTTP 服务器手册”
配置 Apache Ubuntu 18.04 LTS 中的虚拟主机
我的测试盒IP地址是 192.168.225.22 主机名是 Ubuntu服务器.
首先,我们将看到如何配置基于名称的虚拟主机 Apache 网络服务器。
配置基于名称的虚拟主机
1.安装 Apache 网络服务器
确保您已安装 Apache 网络服务器。 要在 Ubuntu 上安装它,请运行:
$ sudo apt-get install apache2
安装 apache 后,通过在浏览器中浏览 apache 测试页面来测试它是否正常工作。
打开您的网络浏览器并将其指向 https://IP_Address 或者 https://localhost. 您应该会看到如下所示的页面。
好的! Apache 网络服务器已启动并正常工作!
2.为每个主机创建web目录
我将创建两个虚拟主机,即 ostechnix1.lan 和 ostechnix2.lan.
让我们为第一个虚拟主机 ostechnix1.lan 创建一个目录。 该目录是存储我们的虚拟主机数据所必需的。
为此,请输入:
$ sudo mkdir -p /var/www/html/ostechnix1.lan/public_html
同样,为第二个虚拟主机 ostechnix2.lan 创建一个目录,如下所示。
$ sudo mkdir -p /var/www/html/ostechnix2.lan/public_html
以上两个目录为root用户所有。 我们需要将所有权更改为普通用户。
为此,请运行:
$ sudo chown -R $USER:$USER /var/www/html/ostechnix1.lan/public_html
$ sudo chown -R $USER:$USER /var/www/html/ostechnix2.lan/public_html
这里, $USER 指当前登录的用户。
接下来,将读取权限设置为 Apache 根目录,即 /var/www/html/ 使用命令:
$ sudo chmod -R 755 /var/www/html/
我们这样做是因为我们已经为每个虚拟主机创建了一个单独的目录来存储它们的数据。 因此,我们将 apache 根目录设置为只读,除了 root 用户之外的所有用户。
我们已经创建了存储每个虚拟主机数据所需的目录,设置了适当的权限。 现在,是时候创建一些将从每个虚拟主机提供的示例页面了。
3.为每个主机创建演示网页
让我们为 ostechnix1.lan 站点创建一个示例页面。 为此,请运行:
$ sudo vi /var/www/html/ostechnix1.lan/public_html/index.html
在其中添加以下行:
<html> <head> <title>www.ostechnix.lan</title> </head> <body> <h1>Hello, This is a test page for ostechnix1.lan website</h1> </body> </html>
Save 和 close 文件。
同样,为 ostechnix2.lan 站点创建一个示例页面:
$ sudo vi /var/www/html/ostechnix2.lan/public_html/index.html
在其中添加以下行:
<html> <head> <title>www.ostechnix.lan</title> </head> <body> <h1>Hello, This is a test page for ostechnix2.lan website</h1> </body> </html>
Save 和 close 文件。
4.为每个主机创建配置文件
接下来,我们需要为每个虚拟主机创建配置文件。 首先,让我们为 ostechnix1.lan 站点执行此操作。
复制名为的默认虚拟主机文件 000-default.conf 内容到新的虚拟主机文件,如下所示。
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix1.lan.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix2.lan.conf
请注意,您必须保存所有配置文件 .conf 最后扩展,否则将无法正常工作。
现在,修改配置文件以匹配我们的虚拟主机。
编辑 ostechnix.lan1.conf 文件:
$ sudo vi /etc/apache2/sites-available/ostechnix1.lan.conf
编辑/修改 ServerAdmin、ServerName、ServerAlias 和 DocumentRoot 值与虚拟主机匹配。
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin [email protected] ServerName ostechnix1.lan ServerAlias www.ostechnix1.lan DocumentRoot /var/www/html/ostechnix1.lan/public_html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>