技术解析

nginx 如何反代所有域名?
0
2021-05-26 15:41:28
idczone
有个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_ad抗投诉服务器dr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

但是现在按这个配置却不工作了,502 bad gateway,proxy_pass填具体域名才能工作,为什么呢?
nameservers不指定会导致502.
其实用sniproxy更好

在一台windows上配置的,要不然我也sniproxy了。我记得以前在某台vps上这样配置成功了。而且按道理这样似乎没问题啊,$host是存在的,就是我输入的网址。你说的nameservers具体怎么回事?

server_name "";

server_name怎样填?如果proxy_pass填具体的,server_name可以不写。server_name $host也不行。

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。

https://gist.github.com/zheng1/19efe0b2cf3c12270f9f



确实是要填resolver,加上就工作了!

error.log里是会提示的,下次问问题前先google一下errorlog

数据地带为您的网站提供全球顶级IDC资源