nginx 如何读取本地文件获取参数

问题描述

nginx 如何读取本地文件获取参数
最近遇到开发一个需求:
前提我们使用nginx做方向代理,后端tomcat;
请求的uri类似 http://www.test.com/********/abc/abc/*;
其中 二级目录/********/ 是根据用户随机生成的11位id 与用户是一一对应的;
问题:现有后端tomcatA 更改bug后或者优化了部分功能,我们没有重新部署tomcatA,而是重新搭建了一个新的后台tomcatB,因为nginx代理的tomcatA 这样就没办法测试tomcatB环境;因为我们知道/********/ 与用户是一一对应的关系,所以我就想能不能将测试用户的/********/id报错存放在一个文件中,如test.txt然后我配置nginx 根据读取test.txt 获得参数来匹配二级目录选择后端服务器tomcatB;这样的想法能不能实现?nginx能不能读取test.txt呢?我改怎么配置nginx呢?希望大神给与帮助!

解决方案

发现nginx好像无法直接获取二级目录,让开发将id加到uri参数中,通过id选择后端服务器;
使用ngx_lua与lua_devel_kit插件解决问题
文本内容
111111111 127.0.0.1:8081
222222222 127.0.0.1:8082
333333333 127.0.0.1:8083
思路:1,首先通过函数io.open()打开文件;2,lines()分行读取;3,根据读取每行内同通过string.find()函数通过中间的空格捕获内容;4,根据id判断然后return value值给nginx环境变量$hsver;
5,判断返回的$hsver值是否为空,如果为空,重新给$hsver 默认值;
配置内容:
location /test {

    set_by_lua $hsver '    local f = io.open(""/root/test.txt"")     for l in f:lines() do      __keyvalue = string.find(l(%d+)%s*(%A+)"")       if key == ngx.var.arg_id then         return value       end      end    ';      if ($hsver = """") {       set $hsver 127.0.0.1:8080;    }       proxy_pass $hsver;                       }

解决方案二:
自己顶下,期待大神的帮助!

解决方案三:
读取参数文件
Java 读取 Properties 文件 获取参数值
nginx如何读取缓存文件

解决方案四:
用rewrite来转发请求到b 等测试好了在修改回来

时间: 2024-09-13 17:06:22

nginx 如何读取本地文件获取参数的相关文章

android华为手机读取本地文件夹图片获取path路径null,求指导

问题描述 android华为手机读取本地文件夹图片获取path路径null,求指导 android华为手机读取本地文件夹图片获取path路径null,求指导 解决方案 public String getImagePathFromURI(Uri uri) { Cursor cursor = getActivity().getContentResolver().query(uri null null null null); String path = null; if (cursor != null

编写Socket客户端和服务器程序,客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中。

问题描述 2.编写Socket客户端和服务器程序,客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中.消息格式:字段长度(单位字节)内容--------------------------------------------------------------------len8整个消息长度,不包括这4个字节,类型为longfile_name_length1文件名长度,bytefile_namefile_name_length文件名,Stringdata_length8文件数据长度

获取数据-采集到音频或者读取音频文件获取到数据怎么通过live555处理发送出去

问题描述 采集到音频或者读取音频文件获取到数据怎么通过live555处理发送出去 用live555把通过网络摄像头获取视频发送到远端实现了,现在想用live555读取.acc文件获取音频数据然后打包发送出去,应该怎么做??? 解决方案 顶一个!坐等高人

php读取本地文件常用函数(fopen与file_get_contents)_php基础

下面我们以.txt文件为实例来介绍php读取本地文件的函数,读取文件我们可以利用fopen或file_get_contents来读取,file_get_contents更简单而fopen需要fread配合才可以显示读出的内容. 1.首先来介绍一下fopen()函数 下面我们给出了一个直接打开本地文件的代码demo,必要的地方我们都已经加上了注释: 复制代码 代码如下:     //直接打开一个本地文件的实例代码       <?php       //假若我们本地的文件是一个名为xmlas.tx

B/S结构系统 JS读取本地文件内容

问题描述 B/S结构系统在JSP中通过JS调用fso不能读取本地文件内容??请问如何解决??? 解决方案 解决方案二:帮顶回复内容太短了解决方案三:看看你的ie中关于安全的设置.如果不是ie...阿弥陀佛goodluck解决方案四:我公司从事软件外包,现在在招聘网上很难找到愿意外包的软件工程师,特在此寻找人才,有意向的请联系我,0571-56884997

.net网站开发怎样读取本地文件夹下文件名~~

问题描述 .net网站开发,用C#语言就是要实现从本地文件夹中读取文件中所有图片的名称,名称不包括.jpg,然后作为控件listbox的数据项最终效果就是网页中点击listbox中一个项,右侧就显示一个图片图片都是以时间为名称的,所以就是在listbox里面选择一个日期,就显示对应的图片希望能够帮忙非常感谢!! 解决方案 解决方案二:本地文件夹?这个,b/s结构不是用来干这个事的.解决方案三:publicvoidGetFileNameList(){//初始目录stringpath="c:\ima

php读取本地文件常用函数

1.首先来介绍一下fopen()函数 下面我们给出了一个直接打开本地文件的代码demo,必要的地方我们都已经加上了注释:  代码如下 复制代码     //直接打开一个本地文件的实例代码       <?php       //假若我们本地的文件是一个名为xmlas.txt的文本       $filedemo = "xmlas.txt";       $fpdemo = fopen($filedemo,"r");       if ($fpdemo){  

Jquery $.ajax与$.getJson读取本地文件的例子

Echarts代码:  代码如下 复制代码 require('echarts/util/mapData/params').params.continent = { getGeoJson: function(callback) { $.getJSON('./scripts/continent_geo.json', callback); } } 图示:     Received an invalid response. Origin 'null' is therefore not allowed a

java 读取本地文件实例

例1 读取本地例子,出现错误自己去寻找相应的jar包!  代码如下 复制代码 package loginQQ;   import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader;   public class LoadingRead {   /** * 读取配置文件 */ public static void main(Str