Nginx负载均衡如何使用iServer三维服务

针对Nginx配置中出现的WebGL三维服务验证失败问题,本文提供了两种解决方案,确保了登录请求能正确发送到同一iServer,有效解决了负载均衡场景下的服务验证难题。

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

作者:刘大

背景

现在很多用户会使用Nginx对多个iServer搭载负载均衡,WebGL加载三维服务,会发送一个login请求进行是否是iServer服务的验证(该模式会发送1个get+1个post),这两个请求需来自于同一个iServer的验证,而搭载负载均衡的轮询等机制,会导致这两个请求会发送到不同的iServer进行验证,login的post请求报下图的错误,以致于验证不通过无法继续加载三维服务
image.png

配置方法

有的可能会想到,使用Nginx的IP_hash策略可以解决这个问题 但是会导致同一个客户端的请求全部发送到其中某一个iServer中,从而并不能完全达到负载均衡的效果
这边可通过以下两种方式对Nginx进行配置
第一种方式:
1.在Nginx.conf里面再增加一个location 去匹配login请求,使其发送到同一个iServer中

location ~*/realspace/login{
proxy_pass http://172.16.14.25:8090;
   	}

第二种方式:
2.在代理的iserver的location中 增加request_uri判断 如下

    location /iserver{                            
        proxy_pass http://test/iserver;
        #对请求头过滤匹配‘login’
        set $URL  $scheme://$http_host$request_uri;     
        if ($URL ~ "/realspace/login" ) {
         proxy_pass http://172.16.14.25:8090;
        }
        proxy_set_header ProxyHost $host:8092;
        }

完整配置如下

	upstream test {
      server 172.16.14.25:8090; 
      server 172.16.14.25:8091; 
}

	    server {
        listen       8092;
        server_name  localhost;
        #第一种,添加两个location
	#location ~*/realspace/login{           
        #proxy_pass http://172.16.14.25:8090;
	#}

        #location /iserver{                                    
        #proxy_pass http://test/iserver;
        #proxy_set_header Host $host:8092;
        #proxy_set_header ProxyHost $host:8092; 
	#}
       
        #第二种一个location,里面进行过滤
	location /iserver{                            
        proxy_pass http://test/iserver;
        #对请求头过滤匹配‘login’
        set $URL  $scheme://$http_host$request_uri;		
        if ($URL ~ "/realspace/login" ) {
         proxy_pass http://172.16.14.25:8090;
        }
	proxy_set_header ProxyHost $host:8092;
		}
	}

注意:
做负载均衡的多个iServer上都应该发布你所要请求的服务,不然请求分发过去,会出现找不到请求404的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值