如何使用nginx根据请求的域名代理服务器?

Geo*_*los 7 nginx reverse-proxy

有一种情况,首先所有当前请求都应该像它们当前针对某个域名一样工作。例如 www.hello.com

动态DNS是要指向www.hello.com服务器相同的静态IP(somedomain.dnsdynamic.com ---> XXX.XXX.XXX.XXX)

所有请求,包括 GET、POST 等,都将被代理主机名为 finalserver.example.com 的另一台服务器。(注意这个服务器没有静态ip,所以必须使用主机名)

代理应该在 www.hello.com 服务器收到服务器名称为 somedomain.dnsdynamic.com 的请求时工作

已经尝试记住这个答案但失败了,要么得到 502 bad gateway 要么 404 page not found

kri*_*sFR 9

如果我理解正确,您可以尝试定义两个虚拟主机:

  • 一个为www.hello.com本地 Web 服务器内容提供服务

  • 另一个somedomain.dnsdynamic.com代理 finalserver.example.com

像这样的事情:

    server {
      listen       80;
      server_name  www.hello.com;
      root /var/www;
      index   index.html;
    }

    server {
      listen       80;
      server_name  somedomain.dnsdynamic.com;

      location / {
        proxy_pass  http://finalserver.example.com;
      }
    }
Run Code Online (Sandbox Code Playgroud)