如何解决Nginx端口监听,但没有响应
我要完成的任务是将我的所有应用程序从Amazon Linux AMI迁移到Rhel 8 AMI。该应用程序是连接到mysqlDB的简单nodeJS API。在Linux AMI中,它对https使用端口5050,对http使用端口5000。在Rhel8 AMI中,它将6060端口用于https(5050已由Seminage声明的某个进程占用),而5000端口则用于http。使用Rhel 8,访问端口5000可以正常工作,它完美地返回了我的请求。但是,使用6060时,无法获得任何响应。因此,我对为什么nginx在Linux AMI而不是Rhel 8上能完美工作感到困惑。在解决该问题方面,我做了以下事情:
-
确保端口正在侦听
-
添加了我需要的端口 我使用以下行添加了端口:#semanage port -a -t https_port_t -p tcp 8001
-
安装了firewalld,并添加了http和https
-
在firewalld中同时打开了端口5000和6060
-
检查了日志中是否有错误。 (仅供参考,自从端口5050被使用以来,最后一件事情是使用端口5050的权限错误,这也是我使用6060的原因。)
-
四元组检查NodeJS代码中没有使用端口5050。
-
确保nginx -t正常工作。
这是端口的图片 ports listening 和我的nginx配置文件: part1 part2
我做的最后一件事是注意到端口6060仅对http开放,而在selinux中不对https开放。我试图做#semanage port -a -t https_port_t -p tcp 8001,但是它不接受https_port_t。这是受以下事实启发的:如果我执行sudo semanage port -l |,则会打开https端口。 grep https,这让我觉得我也可以添加一个。
我想指出我对这一切(包括stackoverflow)非常新,并且配置中写的大部分内容来自我之前从事此工作的人。我从来没有问过它是否正确,因为它可以与Amazon linux AMI一起使用,因此我认为它在Rhel8中也可以类似地工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。