nginx反向代理失效前端无法获取后端的数据解决办法

 更新时间:2023年12月15日 11:05:17   作者:快来救救我  
Nginx服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的Nginx服务器重要功能,下面这篇文章主要给大家介绍了关于nginx反向代理失效前端无法获取后端的数据解决的相关资料,需要的朋友可以参考下

原理:

正向代理:正向代理代理的是客户端。比如我们无法直接在浏览器上访问YouTube,但我们开个加速器,就可以访问了,此时这个加速器就是正向代理服务器。这个加速器能访问YouTube,加速器接收到我们的请求后,把请求转发到YouTube,YouTube返回资源给加速器,加速器再返回资源给我们,这就是正向代理。

正向代理最大的特点是服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理:反向代理代理的是服务器。还是上面的例子,YouTube的每日访问量很大,如果只用一台服务器处理所有请求很容易崩溃,于是会采用分布式部署,有多台服务器处理请求。客户发送请求,DNS服务器把域名解析到nginx服务器上,nginx服务器按照一定规则把请求分发到不同的服务器上进行处理,这时nginx代理的就是YouTube服务器。

nginx隐藏了服务器的信息。

问题:

nginx.conf配置文件内容:

server {
    listen       8092;     #这里把8092改成你的服务在docker容器内运行的端口号
    server_name  localhost;   #这里把localhost改成你的服务器的IP地址

    location /admin/ {    #这里的admin是重点,看下面分析
      proxy_pass http://localhost:56000;   #这里把localhost改成后端服务器的IP地址,把56000改成后端服务的端口号
    }

	location / {
	        root   /usr/share/nginx/html;
	        index  index.html;
	        try_files $uri $uri/ /index.html;
	}
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

注意:

1、location / 的内容要放在location /admin/ 内容的后面,这是配置优先级的问题,location /是通用配置,location /admin/是精准配置,精准配置的优先级要高于通用配置,如果通用配置放在精准配置前面,有可能发生请求被通用配置匹配,执行不到后面的精准配置,会发生代理无效前后端连接不上的问题。

2、精准配置中的路径问题。首先,检查前端代码中有无进行下面这段配置的行为,如果有,那上面配置文件中的admin就要改成设置的api(或是你设置的其他值);如果前端中没有进行这样的配置,就检查后端所有的接口路径是否都有统一的前缀,如果有,就把上面的admin改成你统一的前缀,如果没有,就在手动在前端配置前缀或者在后端接口上配置前缀。不然,无法进行匹配,请求就无法转发到后端接口,前后端就连接不上。

// 创建axios实例
const service = axios.create({
  baseURL: "/api", // 我们配置的代理路径,得和等下nginx配置的后端服务路径匹配
  // baseURL: "process.env.BASE_URL", 
  timeout: 60 * 1000 // 请求超时时间
})

附:检查nginx的错误日志,基本常见的有以下几种原因造成的

1.反向代理会根据转发数据大小,若过大会自动使用upstream

2.代理的时候若不想请求头发生变化可以做如下设置

proxy_set_header Host $host:$server_port;

$host 就是server_name

$server_port 就是server中配置的端口

3.运行nginx的用户没有权限

可修改nginx.conf的执行用户为root,或是赋予当前执行用户相应权限。

总结 

到此这篇关于nginx反向代理失效前端无法获取后端的数据解决的文章就介绍到这了,更多相关nginx反向代理失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决nginx配置proxy_pass之后,响应变慢的问题

    解决nginx配置proxy_pass之后,响应变慢的问题

    这篇文章主要介绍了解决nginx配置proxy_pass之后,响应变慢的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 为Nginx自定义404,502错误页面的方法

    为Nginx自定义404,502错误页面的方法

    为Nginx自定义404,502错误页面的方法,需要的朋友可以参考下。
    2010-12-12
  • 详解如何在Nginx中设置文件上传大小限制

    详解如何在Nginx中设置文件上传大小限制

    在使用 Nginx 进行文件上传时,我们可能需要对上传文件的大小进行限制,以防止用户上传过大的文件导致服务器负载过高,本文将介绍如何在 Nginx 中设置文件上传大小限制,需要的朋友可以参考下
    2023-07-07
  • nginx限速配置的三种方法(limit_req、limit_conn、limit_rate)

    nginx限速配置的三种方法(limit_req、limit_conn、limit_rate)

    本文主要介绍了nginx限速配置的三种方法,主要包括limit_req、limit_conn、limit_rate,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2023-08-08
  • Centos 6.5 64位中Nginx详细安装部署教程

    Centos 6.5 64位中Nginx详细安装部署教程

    Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤,需要的朋友可以参考下
    2017-08-08
  • Nginx七层及四层反向代理配置的全过程

    Nginx七层及四层反向代理配置的全过程

    反向代理是以代理服务器来接受internet连接请求,然后再把请求转发给另外的服务器,下面这篇文章主要给大家介绍了关于Nginx七层及四层反向代理配置的相关资料,需要的朋友可以参考下
    2022-03-03
  • Windows环境实现Nginx配置及开机自启动

    Windows环境实现Nginx配置及开机自启动

    本文主要介绍了Windows环境实现Nginx配置及开机自启动,通过两种方式可以实现nginx的开机自启动,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 服务器的负载均衡nginx+tomcat实现动静分离

    服务器的负载均衡nginx+tomcat实现动静分离

    这篇文章主要为大家介绍了服务器的负载均衡nginx+tomcat实现动静分离的案例实施步骤以及环境详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 一个等号引发的血案(谈Nginx正确的404配置)

    一个等号引发的血案(谈Nginx正确的404配置)

    这篇文章主要介绍了Nginx正确的404配置方法,本文根据实际案例总结而来,可以说是一个等号引发的血案!需要的朋友可以参考下
    2014-08-08
  • Mac中使用Nginx实现80端口转发8080端口

    Mac中使用Nginx实现80端口转发8080端口

    端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口
    2017-09-09

最新评论