我知道这个需求感觉上来说:有点奇葩...
公司开发的网页版本有很多,而且 域名还是一样的
有的还要通过一个公司的特定HTTP代理才能访问,导致查看不同版本时还要不停换代理,非常麻烦。
有的同事连虚拟机都用起来了...
翻了半天nginx文档,没找到相关的资料
实际试了下proxy_pass
,请求的URI不对,也没法改
公司HTTP代理用的是Squid
因为开发是在win平台,也没法编译各种nginx插件...
想问下,这需求有方案么?nginx不行的话,有其它工具行么?
1
ryd994 2015-03-25 15:08:43 +08:00
proxy_pass 代理ip,同时set_header设置Host为域名
一般这种测试需求应该用hosts,或者本地dnsmaq 最好让后端的人给你们开放测试端口,限制内网连接 |
2
Niphor OP 我一开始是这样配的
``` sub_filter real.cn demo.cn; sub_filter_once off; sub_filter_types *; location / { proxy_pass http://xxx.xxx.xxx.xxx:8080; proxy_set_header Host image.real.cn; proxy_set_header X-Real-IP 我的IP; proxy_set_header X-Forwarded-For 我的IP; } ``` 但是没用,squid会报: ``` The following error was encountered while trying to retrieve the URL: / Invalid URL ``` 抓包发现nginx proxy_pass请求是 ``` GET / HTTP/1.1 ``` 所以报错了,但是$request_uri又改不了... 主要是开发,测试,线上测试,正式等等几个版本域名都用的一样的,用host要看其它版本就要不停切换host,非常麻烦.... |
4
ryd994 2015-03-26 02:41:42 +08:00
@Niphor
invalid url只能让管理代理服务器的人给你们加intercept参数,nginx自己搞不定 另外ie的代理设置可以通过修改注册表,你保存几个reg文件,导入就行 chrome/firefox都可以插件切换 其实对改hosts可访问的服务器也可以通过设置代理为那台服务器访问,结合pac的话更方便 切换hosts有什么麻烦的,加个#保存一下的事 |
5
Niphor OP |
7
oott123 2015-03-26 12:51:12 +08:00 via Android
其实我觉得 PAC 不就挺好的么…
|
9
Niphor OP 今天看了半天squid,好像也不好搞
曲线救国了一下,装了个Proxifier,多开了个nginx专门穿代理跑反代...比写代码简单点 此时我已是泪流满面 |
10
oott123 2015-03-26 16:55:15 +08:00
匹配不同的url?比如 http://demo.cn/v1/xxxx 这样的……
|
11
Niphor OP @oott123
不行的,比如静态文件地址 static.demo.cn,是在项目配置文件里面写死的,文件是md5 hash做名字,只用pac,我没法区分的 我们不带v1 v2这样的二级目录... 泪流满面 |