什么是域名端口
在计算机网络中,每个服务都对应一个端口号。当我们访问某个网站时,需要连接该网站所在的服务器的某个端口和 HTTP 协议。默认情况下,HTTP 协议使用 80 端口。
端口由0-65535的数字表示,其中0-1023为系统预留端口,一般不推荐使用,1024-65535为用户端口。
为什么需要指定域名端口
有时候我们需要通过不同的端口来访问同一个服务器上的不同服务。例如,在同一台服务器上启动了一个 Web 服务器和一个 SSH 服务器,我们需要通过不同的端口来连接它们。这时,指定域名端口就成为了必要的操作。
此外,如果您想在局域网中部署一个 Web 服务器,在路由器中设置端口转发规则时,也需要指定域名端口。
如何在 Apache 中指定域名端口
下面以在 Apache 中指定域名端口为例
步骤一:修改配置文件
找到 Apache 的配置文件 httpd.conf,一般位于 /etc/httpd/conf/httpd.conf,用编辑器打开。如果您是 Windows 或 MacOS 用户,则可以在 Apache 安装目录下找到该文件。
在文件中找到:
# Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
将 80 替换为您要使用的端口号,例如:
#Listen 12.34.56.78:9999 Listen 9999
保存文件并退出编辑器。
步骤二:修改 Virtual Host 配置
Virtual Host 是 Apache 配置中的一个概念。一个虚拟主机可以指定一个域名(或者 IP),并为该域名提供不同的服务。如果您只需要为单个域名指定端口,那么可以在 Virtual Host 中进行设置。
找到 httpd.conf 中的 Virtual Host 部分,找到类似如下的语句:
# VirtualHost example: # Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
在其中添加 Listen 指令,指定使用的端口:
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
ServerName example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
ServerName example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
其中,*:9999 表示 Apache 监听所有网卡的 9999 端口。也可以使用特定的 IP 地址,例如:
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
ServerName example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
保存文件并关闭编辑器。
步骤三:重启 Apache
在完成以上修改后,需要重启 Apache 以使更改生效。
在命令行中执行以下命令:
sudo systemctl restart httpd
如果您使用的是 Windows 或 MacOS,则可以重新启动 Apache 服务,或者启动 Apache 控制台并进行重启操作。
通过以上操作,我们可以在 Apache 中指定域名端口,使得同一台服务器上不同的服务能够在不同的端口上提供。同时,也可以在家庭局域网中部署 Web 服务器时,指定特定的端口来提高安全性。