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

时间:2015-03-30 19:41:13

标签: nginx

我有一个nginx服务器,它对运行在127.0.0.1:8080上的应用程序执行proxy_pass

该应用根据其来自的域/主机提供不同的内容。想象一下:

  • www.example-spain.com =>为西班牙用户提供内容
  • www.example-brazil.com =>为巴西用户提供内容
  • 等...

因此,所有域名DNS设置都指向相同的IP,ngxinx只执行proxy_pass,应用程序决定要投放的内容。

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

我将如何做到这一点?我看过一些例子,但他们都只托管了一个域名,他们设置了一个我认为我无法做到的服务器名称,是吗?

由于

1 个答案:

答案 0 :(得分:1)

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

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

您可以添加尽可能多的服务器块。这个方法实际上是Nginx开发人员recommended