如何在 Linux 中更改 Apache HTTP 端口
Apache HTTP 服务器是当今互联网上最常用的 Web 服务器之一,因其灵活性、稳定性和众多功能,其中一些功能目前其他 Web 服务器不具备,例如竞争对手Nginx。
Apache 的一些最重要的功能包括能够在运行时加载和运行不同类型的模块和特殊配置,而无需实际停止服务器,或者更糟糕的是,每次添加新模块并发挥特殊作用时都需要编译软件通过 .htaccess 文件,它可以更改特定于 webroot 目录的 Web 服务器配置。
默认情况下,Apache Web 服务器被指示侦听传入连接并绑定在端口 80 上。如果您选择 TLS 配置,服务器将侦听端口 443 上的安全连接。
为了指示 Apache Web 服务器绑定并侦听标准 Web 端口以外的其他端口上的 Web 流量,您需要添加包含新端口的新语句以供将来绑定。
在基于Debian/Ubuntu的系统中,需要修改的配置文件是/etc/apache2/ports.conf文件,在基于RHEL/CentOS的系统上,需要修改的配置文件是/etc/apache2/ports.conf文件发行版编辑 /etc/httpd/conf/httpd.conf 文件。
使用控制台文本编辑器打开特定于您自己的发行版的文件,并添加新的端口语句,如下面的摘录所示。
nano /etc/apache2/ports.conf [On Debian/Ubuntu]
nano /etc/httpd/conf/httpd.conf [On RHEL/CentOS]
在此示例中,我们将配置 Apache HTTP 服务器来侦听端口 8081 上的连接。确保在此文件中的指示 Web 服务器侦听端口 80 的指令之后添加以下语句,如下图所示。
Listen 8081
添加上述行后,您需要在基于 Debian/Ubuntu 的发行版中创建或更改 Apache 虚拟主机,以便根据您自己的虚拟主机要求启动绑定过程。
在 CentOS/RHEL 发行版中,更改将直接应用于默认虚拟主机。在下面的示例中,我们将修改 Web 服务器的默认虚拟主机,并指示 Apache 侦听从 80 端口到 8081 端口的 Web 流量。
打开并编辑000-default.conf文件,并将端口更改为8081,如下图所示。
nano /etc/apache2/sites-enabled/000-default.conf
最后,要应用更改并使 Apache 绑定到新端口,请重新启动守护程序并使用 netstat 或 ss 命令 检查本地网络套接字表。正在侦听的端口 8081 应显示在您的服务器网络表中。
systemctl restart apache2
netstat -tlpn| grep apache
ss -tlpn| grep apache
您还可以打开浏览器并导航到端口 8081 上的服务器 IP 地址或域名。 Apache 默认页面应显示在浏览器中。但是,如果您无法浏览网页,请返回服务器控制台并确保设置正确的防火墙规则以允许端口流量。
http://server.ip:8081
在基于 CentOS/RHEL 的 Linux 发行版上安装 policycoreutils 软件包,以便添加 Apache 所需的 SELinux 规则以绑定到新端口并重新启动 Apache HTTP 服务器以应用更改。
yum install policycoreutils
添加端口 8081 的 Selinux 规则。
semanage port -a -t http_port_t -p tcp 8081
semanage port -m -t http_port_t -p tcp 8081
重新启动 Apache Web 服务器
systemctl restart httpd.service
执行netstat或ss命令检查新端口是否成功绑定并侦听传入流量。
netstat -tlpn| grep httpd
ss -tlpn| grep httpd
打开浏览器并导航到端口 8081 上的服务器 IP 地址或域名,检查新的 Web 端口在您的网络中是否可访问。Apache 默认页面应显示在浏览器中
http://server.ip:8081
如果您无法导航到上述地址,请确保在服务器防火墙表中添加正确的防火墙规则。