nginx 能配置通过一个代理么?

2015-03-25 14:49:53 +08:00
 Niphor

我知道这个需求感觉上来说:有点奇葩...

公司开发的网页版本有很多,而且 域名还是一样的
有的还要通过一个公司的特定HTTP代理才能访问,导致查看不同版本时还要不停换代理,非常麻烦。

有的同事连虚拟机都用起来了...

翻了半天nginx文档,没找到相关的资料

实际试了下proxy_pass,请求的URI不对,也没法改

公司HTTP代理用的是Squid

因为开发是在win平台,也没法编译各种nginx插件...

想问下,这需求有方案么?nginx不行的话,有其它工具行么?

2008 次点击
所在节点    NGINX
11 条回复
ryd994
2015-03-25 15:08:43 +08:00
proxy_pass 代理ip,同时set_header设置Host为域名
一般这种测试需求应该用hosts,或者本地dnsmaq
最好让后端的人给你们开放测试端口,限制内网连接
Niphor
2015-03-25 15:41:04 +08:00
我一开始是这样配的
```
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,非常麻烦....
Niphor
2015-03-25 15:41:25 +08:00
ryd994
2015-03-26 02:41:42 +08:00
@Niphor
invalid url只能让管理代理服务器的人给你们加intercept参数,nginx自己搞不定

另外ie的代理设置可以通过修改注册表,你保存几个reg文件,导入就行
chrome/firefox都可以插件切换
其实对改hosts可访问的服务器也可以通过设置代理为那台服务器访问,结合pac的话更方便

切换hosts有什么麻烦的,加个#保存一下的事
Niphor
2015-03-26 09:11:39 +08:00
@ryd994

主要是想如果可以反代,我就一劳永逸了,还能直接开不同版本对比...

实在不行,我也只能切换host了
Niphor
2015-03-26 09:17:13 +08:00
@ryd994 哦错了,是用插件切换代理…
oott123
2015-03-26 12:51:12 +08:00
其实我觉得 PAC 不就挺好的么…
Niphor
2015-03-26 13:26:37 +08:00
@oott123

比如我3个版本,域名都是 demo.cn,还不能改,这个pac我怎么写?
Niphor
2015-03-26 16:16:38 +08:00
今天看了半天squid,好像也不好搞

曲线救国了一下,装了个Proxifier,多开了个nginx专门穿代理跑反代...比写代码简单点


此时我已是泪流满面
oott123
2015-03-26 16:55:15 +08:00
匹配不同的url?比如 http://demo.cn/v1/xxxx 这样的……
Niphor
2015-03-26 17:04:59 +08:00
@oott123
不行的,比如静态文件地址 static.demo.cn,是在项目配置文件里面写死的,文件是md5 hash做名字,只用pac,我没法区分的

我们不带v1 v2这样的二级目录...

泪流满面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179268

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX