V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
paloalto
V2EX  ›  NGINX

nginx反向代理GAE成功,但是为何在主域名中提交数据之后还是会跳转到原始的GAE地址?

  •  
  •   paloalto · 2012-03-20 21:35:50 +08:00 · 5835 次点击
    这是一个创建于 4649 天前的主题,其中的信息可能已经有所发展或是发生改变。
    站点是 http://www.jiyin.it 今天刚做好反向代理。

    发帖或者回帖之后就跳到 http://geekiwi.appspot.com 去了,被墙。。

    上次别人帮忙弄时就没这个问题,是我的nginx.conf没写对吗?

    纠结中。。。
    22 条回复    2014-07-30 01:58:20 +08:00
    Livid
        1
    Livid  
    MOD
       2012-03-20 21:53:30 +08:00
    1. 用 upstream

    http://wiki.nginx.org/HttpUpstreamModule

    2. 记得在 server { location / { ... } } 里要加入 proxy_set_header Host $host;
    paloalto
        2
    paloalto  
    OP
       2012-03-20 22:47:30 +08:00
    @livid 看了一下,upstream是做负载均衡的。是因为我没做伏在均衡所以出现上面的问题吗?
    不太懂这个,所以第一步没做。

    第二步做了:

    server {
    listen 80;
    server_name jiyin.it www.jiyin.it *.jiyin.it;

    location / {
    proxy_pass http://geekiwi.appspot.com/;
    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 Host $host;
    }
    }

    但是这样访问jiyin.it之后就跳转到google.com了。。。奇怪啊。。
    zhuzhuor
        3
    zhuzhuor  
       2012-03-20 22:52:25 +08:00
    你的网页写相对url,不要写成长url了
    paloalto
        4
    paloalto  
    OP
       2012-03-20 22:53:59 +08:00
    @zhuzhuor 就是写的相对url。
    ksky
        5
    ksky  
       2012-03-20 23:06:17 +08:00
    我这样写就可以

    server
    {
    listen 80;
    server_name jiyin.it;

    location / {
    proxy_pass http://geekiwi.appspot.com/;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    beta4better
        6
    beta4better  
       2012-03-20 23:22:03 +08:00   ❤️ 2
    尝试下这样配置:

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
    proxy_pass http://ghs.google.com/;
    }
    paloalto
        7
    paloalto  
    OP
       2012-03-20 23:47:48 +08:00
    @beta4better 又见到你啦,刚看到你的邮件了。按你上面写的就没问题,发帖回帖也不会跳转到geekiwi.appspot.com了。

    多谢!
    paloalto
        8
    paloalto  
    OP
       2012-03-21 00:09:25 +08:00
    @beta4better 新的问题又出现了。在搞定了jiyin.it之后,我还有另一个域名2wen.it,是用跟jiyin.it同样的配置写的,但是访问时却是google的404错误页面。2wen.it的原始地址是 http://erwenit.appspot.com

    server {
    listen 80;
    server_name jiyin.it www.jiyin.it *.jiyin.it;

    location / {
    proxy_pass http://ghs.google.com/;
    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 Host $host;
    }
    }

    server {
    listen 80;
    server_name 2wen.it www.2wen.it *.2wen.it;

    location / {
    proxy_pass http://ghs.google.com/;
    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 Host $host;
    }
    }
    lemonda
        9
    lemonda  
       2012-03-21 00:24:31 +08:00
    erwenit.appspot.com 没有绑定 2wen.it吧,直接改了hosts打开也是404。
    paloalto
        10
    paloalto  
    OP
       2012-03-21 00:30:15 +08:00
    @lemonda 我绑定了呀,而且我改了本地的hosts后能直接访问erwenit.appspot.com的。

    203.208.45.206 erwenit.appspot.com
    paloalto
        11
    paloalto  
    OP
       2012-03-21 00:32:03 +08:00

    如图

    上面是绑定了我的vps。
    下面是刚改了本地的hosts后直接访问 erwenit.appspot.com ,能打开。
    paloalto
        12
    paloalto  
    OP
       2012-03-21 00:54:25 +08:00
    我觉得这个应该是解决办法: http://www.ha97.com/1747.html

    两个gae应用同时放在一个nginx.conf里,proxy_pass还都是 http://ghs.google.com ,估计nginx就分不清哪个是哪个了,所以需要分别指定。

    我试试。
    paloalto
        13
    paloalto  
    OP
       2012-03-21 01:22:35 +08:00   ❤️ 1
    按照上面的办法,失败了。。
    CoX
        14
    CoX  
       2012-03-21 01:47:54 +08:00
    现在顶级域名直接cnname到ghs就可以访问
    paloalto
        15
    paloalto  
    OP
       2012-03-21 01:56:44 +08:00
    @CoX 那是不是需要在gae的app设置里把顶级域名和app绑定?要不然那么多app都把顶级域名cnname到ghs,google怎么分的清哪个app对应哪个域名呢?
    paloalto
        16
    paloalto  
    OP
       2012-03-21 02:11:12 +08:00
    @paloalto 刚才试了顶级域名直接cnname到ghs,结果还是跳转到了google首页。
    cute
        17
    cute  
       2012-03-21 10:44:46 +08:00
    proxy_set_header Host your_appid.appspot.com;
    lemonda
        18
    lemonda  
       2012-03-21 10:50:22 +08:00
    @paloalto 现在是绑定的,可以访问了。
    lemonda
        19
    lemonda  
       2012-03-21 10:56:51 +08:00
    beta4better
        20
    beta4better  
       2012-03-22 19:36:58 +08:00
    @paloalto

    刚看了下你的网站貌似还没有配置好吧?

    建议使用下面的配置试试看:


    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    client_header_buffer_size 64k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 16k;
    proxy_buffers 32 16k;
    proxy_busy_buffers_size 64k;

    上面这段放到nginx的http里面,在server里仅放置:


    server {
    server_name www.beta4better.me;

    location / {
    proxy_pass http://ghs.google.com/;
    }
    }


    这样应该可以。

    Good luck!
    paloalto
        21
    paloalto  
    OP
       2012-03-22 23:38:40 +08:00
    @beta4better 现在好啦。昨天还是前天来着,google把我服务器的IP封了,今天刚刚解封。

    http://www.v2ex.com/t/30243
    paloalto
        22
    paloalto  
    OP
       2014-07-30 01:58:20 +08:00
    @beta4better 两年多了,今天重新迁移数据,在新的服务器上用你的办法,又成功了。特此感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.