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

nginx 如何反代所有域名?

  •  
  •   jacy · 2014-11-01 12:45:14 +08:00 · 4030 次点击
    这是一个创建于 3456 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有个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   ·   我们的愿景   ·   实用小工具   ·   3223 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:34 · PVG 21:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.