解决Nginx端口冲突的排查方法示例

 更新时间:2020年07月12日 08:38:05   作者:LYX6666  
这篇文章主要介绍了解决Nginx端口冲突的排查方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题描述

一个Spring + Angular前后端分离的项目,使用Nginx进行数据转发。

Nginx监听端口8100,前台端口4200,后台端口8080。

像往常一样,提前配置好MySQL、配置好Redis,引入项目的Nginx配置文件,然后启动前台、后台,成功。

接下来出现了问题:前台发起的请求,只有极少数能被后台接收到,大部分都是404,随着在浏览器中的点击,控制台不断的出现404。

如果只是404,那问题就很简单,很大可能是Nginx端口转发设置错了。但它的神奇之处就在于,还有那么几次请求,是能到达后台的。

(上图中,显示保存成功的时候,后台确实输出了相关的控制台信息)

其他的小伙伴都没有出现这个问题,于是开始排查。

排查过程

为了搞清楚是 后端 的问题还是 Nginx 转发的问题,需要先从浏览器的NetWork中看一下这个404是后台返回的还是Nginx返回的。

经过查看,发现是Nginx返回的。如果是后台返回的404,会把错误信息写在HTTP请求头中。

先查看监听端口是否有冲突,使用nginx -T可以查看完整的Nginx配置文件,包括引入的外部文件。

// 测试配置文件是否正确,并输出完整的配置文件
nginx -T

在输出的结果中,只看到一个8100,说明虽然引入了多个项目,但并没有出现监听端口冲突。

然后笔者打算从Nginx日志中寻找一些蛛丝马迹。

开启Nginx的日志模式之后,查看日志文件,发现了上千条访问记录

大多数都是404,少数是200,但日志并没有提供什么有用的信息。

最终,还是在配置文件中发现了问题:

使用HomeBrew安装的Nginx,它的全局配置文件中,默认的监听端口就是8080,而项目后端占用的端口也是8080。

虽然对于端口监听和端口占用的原理不是很了解,至少可以知道,由于Nginx监听了8080端口,有一部分请求被发到了Nginx自己那里,另一部分才是发送到后台。

所以,修改全局配置文件,改掉默认端口,问题解决。

// 修改配置文件
sudo vim /usr/local/etc/nginx/nginx.conf
// 测试配置文件
nginx -t
// 重启Nginx
nginx -s reload

终于,所有的请求都能达到后台了。

总结

在一开始学习XAMPP的时候,就经常听到:“如果80端口冲突,就把端口改掉,比如改成8080”。

可是当8080成为了我们的习惯之后,有些项目也会使用这个端口...因此就要解决冲突问题了。

以后更改默认端口的时候,建议改成一个不可能用到的端口,比如10000以上的端口号,避免和项目的端口产生冲突。

到此这篇关于解决Nginx端口冲突的排查方法示例的文章就介绍到这了,更多相关Nginx端口冲突的排查方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Nginx服务器的安装与一些基本配置总结

    Nginx服务器的安装与一些基本配置总结

    这篇文章主要介绍了Nginx服务器的安装与一些基本配置总结,包括静态化与负载均衡等重要设置的方法记录,需要的朋友可以参考下
    2015-11-11
  • Nginx proxy_set_header配置方式

    Nginx proxy_set_header配置方式

    这篇文章主要介绍了Nginx proxy_set_header配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx动静分离配置实现与说明

    Nginx动静分离配置实现与说明

    这篇文章主要介绍了Nginx动静分离配置实现与说明,需要的朋友可以参考下
    2022-04-04
  • Nginx、Tomcat等项目部署问题以及解决流程

    Nginx、Tomcat等项目部署问题以及解决流程

    本文总结了项目部署中常见的 four 类问题及其解决方法:Nginx 未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致的问题,通过提供详细的解决方案和思路,希望开发者能够更好地应对部署过程中的挑战,确保项目顺利上线
    2024-12-12
  • Nginx报403 forbidden错误 (13: Permission denied)的解决办法

    Nginx报403 forbidden错误 (13: Permission denied)的解决办法

    这篇文章主要介绍了Nginx报403 forbidden错误 (13: Permission denied)的解决办法,引起nginx 403 forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态。具体内容详情大家可以参考下本文
    2017-01-01
  • Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1的配置过程

    Ubuntu安装Nginx有两种方式,一种是通过命令的方式,这种方式安装的Nginx版本低,之前漏扫扫出来Nginx版本低,需要升级所以现在用编译的方式安装版本高点的,本文介绍Ubuntu22.04.1 LTS编译安装nginx1.22.1的配置过程,本文给大家介绍的非常详细,需要的朋友参考下吧
    2024-01-01
  • nginx connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable)

    nginx connect() to unix:/var/run/php-fpm.sock failed (11: Re

    这篇文章主要介绍了nginx connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable),需要的朋友可以参考下
    2015-01-01
  • nginx搭建高可用集群的实现方法

    nginx搭建高可用集群的实现方法

    本文主要介绍了nginx搭建高可用集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Nginx大并发优化实战

    Nginx大并发优化实战

    这篇文章主要介绍了Nginx大并发优化实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • nginx location指令(匹配顺序匹配冲突)实战示例详解

    nginx location指令(匹配顺序匹配冲突)实战示例详解

    这篇文章主要介绍了nginx location指令(实战示例匹配顺序匹配冲突)详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论