nginx 如何反代所有域名? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
div class="sep20">
jacy
V2EX    NGINX

nginx 如何反代所有域名?

  •  
  •   jacy 2014-11-01 12:45:14 +08:00 4537 次点击
    这是一个创建于 3997 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有个vps上有nginx,在vps上配置反向代理,电脑上用hosts将想要的域名解析到该vps上,然后nginx反代。
    曾经我按以下文件配置成功了(很久前了,应该是这样):
    server {
    listen 80;
    location / {
    proxy_pass http://$host;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

    但是现在按这个配置却不工作了,502 bad gateway,proxy_pass填具体域名才能工作,为什么呢?
    8 条回复    2014-11-01 17:10:03 +08:00
    liuchen9586
        1
    liuchen9586  
       2014-11-01 13:03:28 +08:00
    nameservers不指定会导致502.
    其实用sniproxy更好
    jacy
        2
    jacy  
    OP
       2014-11-01 13:14:21 +08:00
    @liuchen9586 在一台windows上配置的,要不然我也sniproxy了。我记得以前在某台vps上这样配置成功了。而且按道理这样似乎没问题啊,$host是存在的,就是我输入的网址。你说的nameservers具体怎么回事?
    leofml
        3
    leofml  
       2014-11-01 13:18:38 +08:00
    server_name "";
    jacy
        4
    jacy  
    OP
       2014-11-01 13:23:13 +08:00
    @leofml server_name怎样填?如果proxy_pass填具体的,server_name可以不写。server_name $host也不行。
    liuchen9586
        5
    liuchen9586  
       2014-11-01 13:56:59 +08:00   1
    server {
    listen 10.10.0.3:81;
    client_body_timeout 60000;
    client_max_body_size 1024m;
    send_timeout 60000;
    client_header_buffer_size 16k;
    large_client_header_buffers 4 64k;

    proxy_headers_hash_bucket_size 1024;
    proxy_headers_hash_max_size 4096;
    proxy_read_timeout 60000;
    proxy_send_timeout 60000;

    location / {
    auth_basic "WelCome to OkamiNetwork,Enter your password please~:";
    auth_basic_user_file /usr/local/nginx/htpasswd;
    resolver 8.8.8.8;
    proxy_pass http://$http_host$request_uri;
    }
    }

    是resolver没填吧,我这个配置正常工作,实现的功能和你一样。
    不填resolver会导致502。
    leofml
        6
    leofml  
       2014-11-01 14:05:55 +08:00   1
    https://gist.github.com/zheng1/19efe0b2cf3c12270f9f

    sudo nginx -c ./nginx.conf
    curl 127.0.0.1 -H "Host: www.baidu.com"

    测试是可行的
    jacy
        7
    jacy  
    OP
       2014-11-01 16:50:15 +08:00
    @liuchen9586
    @leofml
    确实是要填resolver,加上就工作了!
    ryd994
        8
    ryd994  
       2014-11-01 17:10:03 +08:00
    @jacy error.log里是会提示的,下次问问题前先google一下errorlog
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2543 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:32 PVG 12:32 LAX 21:32 JFK 00:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86