centos7上使用nginx非80端口转发失败

本文详细记录了在CentOS7环境下,遇到Nginx非80端口转发失败的问题及解决方案。通过排查发现,防火墙状态虽显示关闭,但实际仍需手动添加规则才能使外部正常访问。文章提供了具体的命令操作步骤,包括解锁并启动防火墙,以及如何永久添加端口规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在操作系统上能否访问该链接

使用linxu命令curl xxxxx,结果能够正常访问,好了,这里我就可以知道不是nginx配置问题,多半是防火墙原因。

防火墙验证

  1. systemctl status iptables.service ,查询防火墙状态,此时查询得知防护墙是关闭,状态,我惊呆了,防火墙关闭之后难道不是无规则了吗,后来又瞎搞操作一波,以为是nginx的配置问题,修改了,又重启,结果还是老样子,内部可以用curl访问,后面我想试着将防火墙重启,再把规则添加上去,也许行得通;
  2. 执行 systemctl start firewalld 命令后出现Failed to start firewalld.service: Unit is masked,意思是防火墙服务被锁, 解决方法解锁,执行命令systemctl mask firewalld,ok,再执行启动防火墙,success。
  3. 添加防火墙规则命令,firewall-cmd --zone=public --add-port=6032/tcp --permanent (–permanent永久生效,没有此参数重启后失效),最后公网上也可以正常访问了。

关闭防火墙后为什么需要添加规则才能访问

查询资料得知需要将规则添加到防护墙后,防火墙正常启用情况下,即使下次关闭,以前添加的规则不会失效(要注意重启失效,通过命令行直接添加没有追加“permanent”),开放的端口仍然是以前的,即使关闭后,其他端口也无法使用,单纯关闭防火墙是行不通,还是需要添加对应的安全规则使其访问。

<think>好的,用户想在CentOS 7中关闭Nginx端口转发配置。我需要根据提供的引用资料给出正确的步骤。首先,用户提到使用Yum安装了Nginx,并且引用了配置文件的路径,比如/etc/nginx/conf.d/proxy.conf。停止端口转发的方法应该是删除或修改相关的配置文件,然后重启Nginx服务。 首先,我需要确认如何找到端口转发的配置文件。根据引用[2]和[4],配置文件通常放在/etc/nginx/conf.d/目录下,比如proxy.conf。用户需要检查这个目录中的文件,找到包含stream模块或proxy_pass指令的配置。 然后,关闭端口转发的方法可能有几种:1. 删除相关的配置文件;2. 注释掉配置中的相关部分;3. 停止Nginx服务。但用户可能只是希望停止转发而不完全停止Nginx,所以最好是注释或删除对应的配置。 接下来,步骤应该是:停止Nginx服务,编辑或删除配置文件,重新加载配置。需要提醒用户在修改配置前备份,避免出错。同时,确保防火墙设置也调整,如果之前开放了端口,可能需要关闭。 另外,引用[1]提到stream模块通常已安装,但关闭转发不需要卸载模块,只需移除配置。最后,验证配置是否生效,可以使用curl或netstat检查端口是否停止监听。 需要注意用户可能使用mobaexterm这样的工具连接到服务器,所以步骤需要详细但清晰,用命令行操作。确保命令正确,比如使用systemctl控制服务,nginx -t测试配置,以及正确配置文件路径。</think>### 如何在 CentOS 7 中停止 Nginx端口转发设置 #### 步骤 1:停止 Nginx 服务 首先需停止正在运行的 Nginx 服务: ```bash sudo systemctl stop nginx ``` #### 步骤 2:删除或注释端口转发配置 端口转发配置通常存储在以下位置: - **主配置文件**:`/etc/nginx/nginx.conf` - **子配置文件**:`/etc/nginx/conf.d/` 目录下的文件(如 `proxy.conf`[^2]) 通过以下命令编辑配置文件: ```bash sudo vi /etc/nginx/conf.d/proxy.conf # 删除或注释包含 `stream`、`proxy_pass` 的配置段落 ``` 例如,若配置中包含类似以下内容: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; # 注释或删除此行 } } ``` #### 步骤 3:验证配置语法 重新加载配置前需检查语法是否正确: ```bash sudo nginx -t ``` 若显示 `syntax is ok` 和 `test is successful`,则继续下一步。 #### 步骤 4:重启 Nginx 服务 重新启动服务以使配置生效: ```bash sudo systemctl start nginx ``` #### 步骤 5:检查端口状态 确认端口转发已关闭: ```bash netstat -tuln | grep ':80' # 若仅显示 Nginx 自身监听,则转发已关闭 ``` #### 补充说明 - 若需**完全禁用端口转发功能**,可卸载 `nginx-stream` 模块(但通常只需移除配置)[^1]。 - 若配置了防火墙,需同步关闭相关端口规则: ```bash sudo firewall-cmd --remove-port=80/tcp --permanent sudo firewall-cmd --reload ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值