如何在 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/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 虚拟主机,以便启动绑定过程,具体到您自己的 vhost 要求。
在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
如果您无法导航到上述地址,请确保在服务器防火墙表中添加正确的防火墙规则。