托管多个域时如何重定向裸域

How to redirect naked domain when you host multiple domains

我有一个 nginx 服务器,它对 127.0.0.1:8080

上的应用 运行 执行 proxy_pass

该应用根据其来源 domain/host 提供不同的内容。想象一下:

所以所有域的 DNS 设置都指向同一个 IP,而 ngxinx 只是做一个 proxy_pass 并且应用程序决定要提供什么内容。

现在我想(永久)将裸域重定向到 www.域名。

我该怎么做?我看过示例,但它们都只托管 1 个域,并且设置了一个服务器名称,我认为我不能,可以吗?

谢谢

只需将另一个服务器块添加到您的配置中,其唯一目的是将请求发送到您的无 www 域并将它们重定向到对应的 www:

server {
    listen 80;
    server_name example-spain.com;
    return 301 http://www.example-spain.com$request_uri;
}

您可以根据需要添加任意数量的服务器块。这个方法实际上是 recommended Nginx 开发者