全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3007|回复: 18
打印 上一主题 下一主题

[Windows VPS] 请教下nginx子目录反代+根目录重写到子目录会死循环吗

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-26 11:49:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
是这样的,想反Google,但是我觉得顺便反代下快照会比较好(以前ggssl就是这么干的)

在百度找到例子是可以用子目录来反代不同站点(类似于/a/目录反代百度,/b/目录反代谷歌)
在这看到的 http://hi.baidu.com/woailiuxiaomi/item/ef716e6df78b8a12a1cf0fc4

经过测试,如果根目录反代到hostloc的话,子目录的反代规则不会生效,会出现hostloc的404(我用单手的那个教程上代码直接反代hostloc测试,并在这个规则的前面写的子目录反代别的站点)
就是子目录的写在前面

location /baidu/ {}
根目录的规则写后面
location / {}

脑子里只想到2个办法,第一个是单独建立个站点,但是觉得挺不爽的。第二个办法是把反代2个站点都写在子目录,然后把根目录重写到子目录。(担心死循环所以没试,所以想请教下有经验的前辈,这样会死循环么),或者首页跳转到子目录去

/*重写到/b/*

不过想到这个规则就怕是个死循环,因为/b/*也是属于/*的,这样岂不是会无限/b/b/b/b/b/b……或者nginx比较智能,只会重写一次,还有就是重写的时候先判断下是否/b/或者/a/开头可避免,不过本人愚钝 - - 不会写这样的规则,所以希望大神帮忙 来吧 有分加 发现写的好长 = =!

评分

参与人数 1威望 +15 收起 理由
hzqim + 15 提出问题比解决问题重要。

查看全部评分

19#
 楼主| 发表于 2012-10-26 22:20:23 | 只看该作者
单手摘月 发表于 2012-10-26 22:12
- -没看懂的说。。。把你整个conf贴出来吧= =
  1. server{
  2.         listen 80;
  3.         server_name g.com www.g.com;    #绑定的域名
  4.         index index.php;      #默认首页
  5.         access_log off;                #off 关闭日志
  6.        
  7.         location / {
  8.                         rewrite ^/(.*) /g/$1;
  9.         }


  10.         location /g/ {
  11.                         subs_filter www.google.com g.com;  #替换掉域名
  12.                         subs_filter 'webcache.googleusercontent.com/search?q=cache:' 'g.com/p/';
  13.                         proxy_set_header   X-Real-IP  $remote_addr;
  14.                         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  15.                         proxy_set_header   Referer http://www.google.com;        #强制定义Referer,程序验证判断会用到
  16.                         proxy_set_header   Host www.google.com;                  #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
  17.                         proxy_pass http://www.google.com/;                        #指定目标,建议使用IP或者nginx自定义池
  18.                         proxy_set_header Accept-Encoding "";                        #清除编码
  19.         }


  20.         location /p/ {
  21.                         subs_filter webcache.googleusercontent.com g.com/p;  #替换掉域名
  22.                         proxy_set_header   X-Real-IP  $remote_addr;
  23.                         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  24.                         proxy_set_header   Referer http://www.google.com;        #强制定义Referer,程序验证判断会用到
  25.                         proxy_set_header   Host webcache.googleusercontent.com;                  #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
  26.                         proxy_pass http://webcache.googleusercontent.com/search?q=cache:;                        #指定目标,建议使用IP或者nginx自定义池
  27.                         proxy_set_header Accept-Encoding "";                        #清除编码
  28.         }
  29. }
复制代码

评分

参与人数 1威望 +18 收起 理由
单手摘月 + 18 赞一个!

查看全部评分

18#
发表于 2012-10-26 22:12:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
17#
 楼主| 发表于 2012-10-26 21:51:08 | 只看该作者
单手摘月 发表于 2012-10-26 21:43
不只是我ip。。我开了大陆的ssh访问还是reset的。。。


a目录反代谷歌
b目录反代快照页(试过了可以用,但是因为德国那边可能限制了,谷歌出不来快照链接所以只能搁置了)

然后用rewrite ^/(.*) /a/$1;就可以了(放前面单独匹配/),之前不敢试怕vps上死循环害人,就在本机试了一下,确定没问题就更新上去了

不会出现死循环的情况,我的理解是这个在前面,重写网址之后后面的指令就是反代了,所以没有死循环的情况
16#
发表于 2012-10-26 21:43:12 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
15#
 楼主| 发表于 2012-10-26 21:38:56 | 只看该作者
单手摘月 发表于 2012-10-26 21:33
不搞了!

不知道xxx.com是x站,本地hosts了xxx.com到我vps ip。。。

嘿嘿,这个只会你这个ip和vps的ip断开一会而已把。虽然你那个不行不过我已经搞定啦。不用再麻烦了嘿嘿
14#
发表于 2012-10-26 21:33:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
13#
 楼主| 发表于 2012-10-26 21:20:56 | 只看该作者
Zeraba 发表于 2012-10-26 16:49
好想法 回头给我的山寨360的缓存爷反代下
其实我也不太理解你在说什么 子目录 同域名反代 多个conf 不是就 ...

多个站点的解决方法我不喜欢,子目录的意思是,同一个域名下,a目录打开是百度,b目录打开是谷歌,c目录打开是360,我是想让google和快照在一个域名下实现
12#
 楼主| 发表于 2012-10-26 21:18:55 | 只看该作者
单手摘月 发表于 2012-10-26 16:45
完全没问题啊。。。

我之前就是这样写的,没用,我现在复制你的规则测试也是一样的(我在windows下试的)你可以打开看看真的,你这个访问mjj就是google的404页面

我自己解决了,唉,反复弄来弄去采搞定的,悲催,不管咋样谢啦
11#
发表于 2012-10-26 16:49:31 | 只看该作者
好想法 回头给我的山寨360的缓存爷反代下
其实我也不太理解你在说什么 子目录 同域名反代 多个conf 不是就可以么? 就是不知道配置文件能不能合并
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-7 04:00 , Processed in 0.071185 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表