在我们之前的文章中,“如何安装 Apache Linux 上的 Web 服务器”,我们解释了如何安装 Apache 在 Linux 机器上。 现在在这篇文章中,我们将跟进的基本配置 Apache 这将包括
- 允许 Apache 通过防火墙的流量
- 管理 Apache 服务
- 在中设置虚拟主机 Apache
- 配置 Apache 监听不同的端口
- 允许/拒绝来自特定 IP 地址的访问
先决条件
- Ubuntu 20.04 系统
- 用户 sudo 特权
- 一个 Apache 已安装网络服务器
笔记: 本文中讨论的命令已经过测试 Ubuntu 20.04 LTS (焦点窝)。 相同的命令也适用于 Debian 发行版。
允许 Apache 通过防火墙的流量
如果您的操作系统上启用了防火墙,则您必须允许 Apache 通过它的交通。 这 Apache 服务器默认侦听 HTTP 端口 80 和 https 端口 443。 为了允许 HTTP(端口 80)流量通过防火墙,请在终端中执行以下命令:
$ sudo ufw allow 'Apache'
要允许 HTTPS(端口 443)流量通过防火墙,请在终端中执行以下命令:
$ sudo ufw allow 'Apache Secure'
为了允许 HTTP(端口 80)和 HTTPS(端口 443)流量在防火墙中通过,请在终端中执行以下命令:
$ sudo ufw allow 'Apache Full'
管理 Apache 服务
安装后, Apache 服务自动开始在后台运行。 查看状态 Apache 服务,在终端中发出以下命令:
$ systemctl status apache2
在以下输出中, 活跃(运行) 状态表明, Apache 服务处于活动状态并且正在运行,没有任何问题。
对于手动启动 Apache 服务,使用以下命令:
$ sudo systemctl start apache2
为了启用 Apache 服务在启动/引导时自动启动,使用以下命令:
$ sudo systemctl enable apache2
对于重新启动 Apache 服务,使用以下命令:
$ sudo systemctl restart apache2
为了停止 Apache 服务,使用以下命令:
$ sudo systemctl stop apache2
在中设置虚拟主机 Apache
虚拟主机在 Apache 允许您从一个单一的运行多个网站 Apache 网络服务器。 在下一节中,我们将为我们的域“test.org”配置一个虚拟主机。 对于多个域,请对每个域执行相同的步骤。
第 1 步:为您的域创建目录
第一步是为您的域创建一个目录。 如果您需要托管多个域,请为每个域创建单独的目录。 对于我们的域名 测试网,我们将使用以下命令创建目录:
$ sudo mkdir /var/www/test.org
确保更换 测试网 与您的域名。
第 2 步:设置所有权和权限
我们域的目录当前归根用户所有。 为了允许其他用户修改文件,我们需要更改目录的所有权。 在终端中使用以下命令:
$ sudo chown -R $USER:$USER /var/www/ test.org
此外,在域目录上设置所需的权限。 以下命令中的 755 将读取和执行权限分配给每个人,而将读取、写入和执行权限分配给文件的所有者。
$ sudo chmod -R 755 /var/www/ test.org
第 3 步:为您的域创建示例 index.html 页面
现在创建一个示例 索引.html 为您的域提供一些内容的页面。 创建文件 索引.html 在里面 /var/www/test.org 目录。
为此,我们使用 Nano 编辑器:
$ sudo nano /var/www/test.org/index.html
在文件中添加以下内容。
<html> <head> <title>Your test.org server block is up!</title> </head> <body> <h1>This is a test page for test.org website!</h1> </body> </html>
完成编辑后,保存并 close 这 索引.html 文件。
现在样品 索引.html 页面已为我们的网站创建。
第 4 步:创建一个新的虚拟主机文件
在 Apaches 中,有一个默认的虚拟主机文件,其中包含默认 Web 服务器的配置。 对于我们的域名 测试网,我们将创建一个单独的虚拟主机文件。
在终端中发出以下命令为您的域创建虚拟主机文件:
$ sudo nano /etc/apache2/sites-available/test.org.conf
在文件中添加以下内容。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.org
ServerAlias www.test.org
DocumentRoot /var/www/test.org/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
确保更换 测试网 用自己的域名。
完成编辑后,保存并 close 文件。
第 5 步:启用虚拟主机文件
现在我们将启用我们在上一步中创建的虚拟主机文件。 在终端中发出以下命令来执行此操作:
$ sudo a2ensite test.org.conf
我们没有使用默认的虚拟主机文件,所以我们可以禁用它。 使用以下命令禁用它:
$ sudo a2dissite 000-default.conf
现在重新加载 Apache 使用以下命令进行配置:
$ systemctl reload apache2
第 6 步:配置 hosts 文件(可选)
如果您没有实际的域名并且只想使用任何测试域来测试该过程,则需要在 /etc/hosts 文件。
编辑 /etc/hosts 在终端中使用以下命令文件:
$ sudo nano /etc/hosts
在此文件中添加以下条目以替换 服务器_IP 和 域名 使用您的环境的 IP 地址和域名。
server_IP domain_name
在我们的 example,条目将是:
192.168.72.157 test.org
现在保存并 close /etc/hosts 文件。
第 6 步:测试错误
现在测试 Apache 任何错误的配置。 使用以下命令执行此操作:
$ sudo apache2ctl configtest
如果一切正常,您将 语法OK 输出中的消息。 您可能还会在测试结果中看到以下警告消息。
要禁止显示此消息,请添加 服务器名称 中的指令 /etc/apache2/apache2.conf 文件。
编辑 /etc/apache2/apache2.conf 在终端中使用以下命令文件:
$ sudo nano /etc/apache2/apache2.conf
在文件替换中添加以下条目 测试网 使用您的域名:
ServerName test.org
Save 和 close 文件。
再次,测试 Apache 对于配置错误。 现在您将看到警告已删除。
第 7 步:测试是否 Apache 正在为您的域名提供服务
现在,通过导航到 Web 浏览器地址栏中的以下地址来测试设置。
https://domain_name
在我们的 example, 这将是:
https://test.org
以下页面表示虚拟主机已成功配置,并且 Apache 正在服务我们的域名。
配置 Apache 监听不同的端口
默认情况下, Apache 侦听端口 80 上的网络流量。在某些情况下,您可能需要更改 Apache 端口,例如当某些其他服务已经在侦听端口 80,ISP 已阻止端口 80,或者您想防止端口 80 攻击时。 但是,请记住,更改默认端口后,您必须将浏览器指向新端口,例如 https://domain_name:port_nmuber。
1. 编辑 /etc/apache2/ports.conf 使用以下命令文件:
$ sudo nano /etc/apache2/ports.conf
这是默认视图 端口.conf 文件,您可以在其中看到端口 80 配置为默认端口。
将此端口号更改为您想要的任何其他值 Apache 服务器收听。
Save 和 close 完成编辑后的 ports.conf 文件。
2. 现在,您需要配置您的虚拟主机以侦听新端口。 要编辑虚拟主机文件,请在终端中使用以下命令:
$ sudo nano /etc/apache2/sites-avaialble/test.org.conf file
在上面的命令中,确保替换 test.org.conf 使用您的虚拟主机文件名。
查找条目 <虚拟主机 *:80> 并从 80 到任何你想要的号码 Apache 听。 例如,将端口号更改为 9090,条目将更改为 <虚拟主机 *:9090>。
笔记:要设置端口号,请选择 1024 到 65535 范围内的值。
完成后,保存并 close 文件。
Apache 也可以配置为侦听多个端口。 例如,要将端口 80 和 9090 设置为监听端口,请在 /etc/apache2/ports.conf 文件:
Listen 80 Listen 9090
同样在 /etc/apache2/sites-avaialble/test.org.conf 文件,按以下方式添加条目:
<VirtualHost *:80 *:9090>
完成后,重新启动 Apache 在终端中使用以下命令提供服务:
$ sudo systemctl restart apache2
允许/拒绝来自特定 IP 地址的访问
在下一节中,我们将了解如何允许/拒绝特定 IP 地址访问我们的站点。 为此,我们将使用 .htaccess 文件。
第 1 步:启用 apache .htaccess
首先,我们需要启用 .htaccess 文件。 为此,请在终端中发出以下命令:
$ sudo nano /etc/apache2/sites-available/test.org.conf
在 VirtualHost 块之后,在文件中附加以下行:
<Directory /var/www/html/example.com/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
现在保存文件并使用以下命令重新启动 apache:
$ sudo systemctl apache2 restart
第 2 步:创建 .htaccess 文件
现在我们需要创建 .htaccess 文件。 导航到虚拟主机根目录。
$ cd /var/www/test.org
然后使用以下命令在此处创建 .htaccess 文件:
$ sudo nano .htaccess
第 3 步:允许/拒绝 IP 地址
到 否定 某些 IP 地址访问您的网站,您需要通过以下方式在 .htaccess 文件中添加条目:
order deny, allow # To deny IP address 192.168.9.8 allow from 192.168.9.8 # To deny all IP addresses from 192.168.9.0 to 192.168.9.255 allow from 192.168.9 To allow For this purpose, IP addresses from accessing your website, you will need to add entries in the .htaccess file in the following way:
order deny, allow # To deny all IP addresses Deny from all # It will allow the IP address 192.168.9.30 allow from 192.168.9.30 # It will allow all IP addresses from 192.168.9.0 through 192.168.9.255
allow from 192.168.9
这就是它的全部! 在本文中,您已经了解了 Apache Linux 上的配置。 这包括防火墙配置、管理 Apache 服务、设置虚拟主机、更改默认侦听端口以及允许/拒绝特定 IP 访问站点。 有关更多信息 Apache 配置,访问 Apache 服务器官方文档位于 https://httpd.apache.org/docs/.