网站搜索

如何在 Linux 中更改 Nginx 端口


Nginx 是一款开源稳定服务器,为当今互联网上一些流量最高的网站提供支持。在 Web 服务中,Nginx Web 服务器可以成功部署为负载均衡器、Web 反向代理或 POP 和 IMAP 代理服务器。

默认情况下,Nginx HTTP 服务器侦听传入连接并绑定在端口 80(代表标准 Web 端口)上。但是,Nginx 默认情况下未启用 TLS 配置,它会侦听端口 443 上的安全连接。

为了使 Nginx HTTP 服务器侦听其他非标准端口上传入的 Web 连接,我们需要编辑主配置文件并更改或添加新的语句来反映这一事实。

在基于UbuntuDebian的系统中,我们需要修改/etc/nginx/sites-enabled/default文件,在RHEL上CentOS 基于发行版编辑 /etc/nginx/nginx.conf 文件。

首先,使用文本编辑器打开 Nginx 配置文件,然后更改端口号,如下面的摘录所示。

vi /etc/nginx/sites-enabled/default  [On Debian/Ubuntu]
vi /etc/nginx/nginx.conf             [On CentOS/RHEL]

在本摘录中,我们将配置 Nginx HTTP 服务器来侦听端口 3200 上的传入连接。在服务器指令中搜索以 listen 语句开头的行,并将端口从 80 更改为 3200,如下图所示。

listen 3200 default_server;

更改 Nginx 端口声明后,您需要重新启动 Web 服务器才能在基于 Debian 的 Linux 发行版上绑定新端口。使用 netstat 或 ss 命令验证本地网络套接字表。端口 3200 应显示在您的服务器本地网络表中。

systemctl restart nginx
netstat -tlpn| grep nginx
ss -tlpn| grep nginx

在基于 CentOSRHEL 的 Linux 发行版中,您需要安装 policycoreutils 软件包并添加 SELinux 所需的以下规则,以便 Nginx 绑定在新端口上。

yum install policycoreutils
semanage port -a -t http_port_t -p tcp 3200
semanage port -m -t http_port_t -p tcp 3200

最后重新启动 Nginx HTTP 服务器以应用更改。

systemctl restart nginx.service 

检查网络表监听套接字。

netstat -tlpn| grep nginx
ss -tlpn| grep nginx

要检查是否可以从网络中的计算机访问 Web 服务器,请打开浏览器并导航到端口 3200 上的服务器 IP 地址或域名。您应该看到 Nginx 默认网页,如下面的屏幕截图所示。

http://sever.ip:3200 

但是,如果您无法浏览 Nginx 网页,请返回服务器控制台并检查防火墙规则以允许端口 3200/tcp 上的传入流量。