如何在Linux中更改Apache HTTP端口

为了指示Apache Web服务器绑定并监听除标准Web端口之外的其他端口上的Web流量,您需要添加一个包含新端口的新语句以供将来绑定。

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文件。

使用控制台文本编辑器打开特定于您自己的发行版的文件,并添加新的port语句,如以下摘录所示。

# 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端口

在Debian和Ubuntu上更改Apache端口

在CentOS和RHEL上更改Apache端口

在CentOS和RHEL上更改Apache端口

添加上面的行后,您需要在基于Debian / Ubuntu的发行版中创建或更改Apache虚拟主机,以启动绑定过程,具体到您自己的虚拟主机需求。

CentOS / RHEL发行版中,更改直接应用于默认虚拟主机。 在下面的示例中,我们将修改Web服务器的默认虚拟主机,并指示Apache监听从80端口到8081端口的Web通信。

打开并编辑000-default.conf文件并将端口更改为8081 ,如下图所示。

# nano /etc/apache2/sites-enabled/000-default.conf 
在虚拟主机上更改Apache端口

在虚拟主机上更改Apache端口

最后,要应用更改并将Apache绑定到新端口上,请重新启动守护程序并使用netstatss命令检查本地网络套接字表。 聆听中的端口8081应显示在您的服务器网络表中。

# systemctl restart apache2
# netstat -tlpn| grep apache
# ss -tlpn| grep apache
验证Apache端口

验证Apache端口

您也可以打开浏览器并导航至端口8081上的服务器IP地址或域名。 应该在浏览器中显示Apache默认页面。 但是,如果您无法浏览网页,请返回到服务器控制台并确保已设置适当的防火墙规则以允许端口通信。

http://server.ip:8081 
Debian和Ubuntu上的Apache默认页面

Debian和Ubuntu上的Apache默认页面

在基于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 

执行netstatss命令来检查新端口是否成功绑定并监听传入流量。

# netstat -tlpn| grep httpd
# ss -tlpn| grep httpd
在CentOS和RHEL上检查Apache端口

在CentOS和RHEL上检查Apache端口

打开浏览器,在端口8081上导航至您的服务器IP地址或域名,以检查新网络端口是否可以在您的网络中访问.Apache默认页面应显示在浏览器中

http://server.ip:8081 

如果您无法导航到上述地址,请确保在服务器防火墙表中添加适当的防火墙规则。