全球主机交流论坛

标题: 求一个nginx规则,泛域名 反代泛域名的问题 [打印本页]

作者: joyanhui    时间: 2012-12-14 14:37
标题: 求一个nginx规则,泛域名 反代泛域名的问题
自己写了一个 好像不对。。。。求教!

  1. server
  2.         {
  3.                 listen       80;
  4.                 server_name 123.com *.123.com;
  5.                 index index.html index.htm index.php default.html default.htm default.php;
  6.                 location /
  7.                         {
  8.                                
  9.                                 if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) {  
  10.                                set $subdomain $1;  
  11.                                }  
  12.         
  13.                                proxy_pass http://$subdomain.456.com/; #反代的网站

  14.                         }
  15.                         access_log off;
  16.         }
复制代码

作者: Qpuer    时间: 2012-12-14 14:38
用$host
作者: wwww961h    时间: 2012-12-14 14:39
这个真不懂呢,大牛上
作者: 完美    时间: 2012-12-14 14:39
proxy_pass http://$subdomain.456.com/;
这个不需要这样,。
这要IP是对的随便写一个域名或者直接IP就行了。
作者: html5    时间: 2012-12-14 14:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: Qpuer    时间: 2012-12-14 14:41
  1. server {
  2. listen 80;
  3. server_name $host;
  4. location / {
  5. proxy_pass http://服务器IP地址/;
  6. proxy_set_header Host $host;
  7. proxy_redirect off;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. }
  11. }
复制代码

作者: joyanhui    时间: 2012-12-14 14:47
html5 发表于 2012-12-14 14:40
猜猜本大是谁

map $host $xxhost{
  ~(.*).baidumjj.com $1.baidu.com;
}

这几行 求解释!
作者: joyanhui    时间: 2012-12-14 14:49
Qpuer 发表于 2012-12-14 14:41

不知道 是我没有看明白,还是 我没有说明白啊。

我需要 同样的子域名哦
作者: html5    时间: 2012-12-14 14:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: joyanhui    时间: 2012-12-14 14:55
html5 发表于 2012-12-14 14:49
比如你想用*.baidumjj.com反代*.baidu.com
就用这样的指令。
                                 map $host $xxhost{
            ~(.*).123.com $1.456.com;
          }
         
server
        {
                listen       80;
                server_name 123.com *.123.com;
                location /
                        {
                                 proxy_pass http://www.456.com/;
         proxy_set_header Host $xxhost
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Accept-Encoding ""; #清除编码 防止GZIP的站无法替换

                        }
                        access_log off;
        }


但是我这样搞 一直都是 502错误。。。。
作者: html5    时间: 2012-12-14 14:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: joyanhui    时间: 2012-12-14 15:04
html5 发表于 2012-12-14 14:57
proxy_pass http://www.456.com/;
要改成
proxy_pass http://12.34.56.78/;

之前用过nginx反代iis空主机头的站点,证明是可以 直接 proxy_pass  http://域名/的方式

刚刚试着改成IP 依旧是502错误
作者: html5    时间: 2012-12-14 15:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: joyanhui    时间: 2012-12-14 15:16
html5 发表于 2012-12-14 15:06
那你在你VPS上直接curl http://目标域名  试试

刚刚测试 没有问题

只要加上

map $host $xxhost{
  ~ ^(.*).baidumjj.com$ $1.baidu.com;
}

这三行 就是502错误。


作者: joyanhui    时间: 2012-12-14 15:37
终于搞定了!!




欢迎光临 全球主机交流论坛 (https://ddzzz.eu.org/) Powered by Discuz! X3.4