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 // 请求超时时间
})

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用nginx作为反向代理服务器时,它可以同时与多个后端服务器建立连接,并根据一定的算法将请求分发给后端服务器处理。其中一个重要的负载均衡策略是"连接数最少的优先分配"。 连接数最少的优先分配策略是指nginx会根据每个后端服务器的当前连接数来决定将请求发送给哪个后端服务器。当有新的请求到达nginx时,它会检查当前后端服务器的连接数,然后选择连接数最少的后端服务器来处理该请求。 这个策略的优点是可以保证后端服务器的负载均衡,避免某个后端服务器过载而导致服务不可用。通过动态调整请求的分配,nginx可以使连接数较少的后端服务器负担更少的请求,而连接数较多的后端服务器承担更多的请求,从而实现更高效的资源利用和更好的用户体验。 连接数最少的优先分配策略适用于后端服务器的连接数分布不均衡的情况,可以平衡负载并提高整个系统的可用性和性能。但同时也要注意,如果某个后端服务器的处理能力非常弱,它可能会成为整个系统的瓶颈,因此在配置nginx反向代理服务器时,需要根据后端服务器的性能和负载能力来合理分配请求。 总结起来,连接数最少的优先分配策略可以根据后端服务器的连接数动态分配请求,保证服务器的负载均衡,提高系统的可用性和性能。同时,合理的配置和监控后端服务器的性能和负载能力也是确保系统正常运行的重要措施。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值