ngnix 实现 if 按条件 根据正则表达式转发

nginx | 2020-03-02 13:36:00

ngnix对服务器的转发我们使用upstream 很轻松就能做到,但是对具体的地址不是很好做,下面就是我自己研究写出来的,对具体的地址进行转发.

ngnix是支持编程的所以我使用了if,使用了 $msec,msec是ngnix内置的时间戳变量,精确到毫秒,然后我使用了正则表达式进行随机转发,时间是偶数就转发到第一台服务器,是奇数就转发到第二台服务器

		location /fileCallback {
			set $flag $msec;
			
			if ( $flag ~ ^.*[1|3|5|7|9]$ ){
				rewrite ^(.*)$ http://10.10.22.175:9001/manager175/fileCallback break;
			}
			
			if ( $flag ~ ^.*[0|2|4|6|8]$ ){
				rewrite ^(.*)$ http://10.10.22.176:9001/manager176/fileCallback break;
			}
			
			
        }

 

 

登录后即可回复 登录 | 注册
    
关注编程学问公众号