专栏首页云计算教程系列如何在Ubuntu 14.04上使用Nginx将www重定向到非www
原创

如何在Ubuntu 14.04上使用Nginx将www重定向到非www

介绍

当你有你的网站或应用程序启动和运行一个域的背后,则是经常需要还允许用户通过简单的域名访问到它,并WWW子域名。也就是说,他们应该可以使用或不使用“ www. ”前缀访问您的域名,例如,example.com或者www.example.com在Web浏览器中,并显示相同的内容。虽然有多种方法可以设置,但为了保持一致性和搜索引擎优化考虑,最佳解决方案是选择您喜欢的域名,简单或www,并将另一个域重定向到首选域。此类重定向称为永久重定向或“301重定向”,可以通过正确配置DNS资源记录和Web服务器软件轻松设置。

本教程将告诉你如何在WWW URL重定向到非www,例如,www.example.comexample.com在Ubuntu 14.04,与Nginx的。我们还将向您展示如何从另一个方向重定向,从非www URL到www。

准备

一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费**的腾讯云开发者实验室进行试验,学会安装后再购买服务器

假设您已安装Nginx。

您必须能够将记录添加到管理域的DNS中。如果您还没有域名,可以从域名注册商处购买域名,并使用注册商的DNS进行管理。在本教程中,我们将使用腾讯云DNS创建必要的记录。

让我们开始配置您的DNS记录。

配置DNS记录

为了建立所需的重定向,www.example.comexample.com,反之亦然,你必须有一个A记录的每个名字。

打开用于管理DNS的任何内容。对于我们的示例,我们将使用腾讯云DNS。

如果域(也称为区域)记录尚不存在,请立即创建一个。该主机名应该是你的域名,例如example.com,与IP地址应设置为你的Nginx服务器的公网IP地址。这将自动创建一个A记录,将您的域指向您指定的IP地址。如果您使用其他系统来管理域,则可能需要手动添加。

接下来,添加另一个带有“www”作为主机名的A记录(如果部分子域不起作用,则添加“ www.example.com”),并指定相同的IP地址。

当您创建了两个记录时,它应该如下所示:

注意:这也适用于CNAME记录,只要规范名称的A记录是指Nginx Web服务器的IP地址。

现在您的服务器应该可以通过www和非www域访问,但我们仍然需要设置重定向。我们现在就这样做。

配置Nginx重定向

要执行301重定向,必须添加指向原始服务器块的新Nginx服务器块。

在编辑器中打开Nginx服务器块配置。我们将使用默认配置文件,在我们的示例中是/etc/nginx/sites-enabled/default

sudo vi /etc/nginx/sites-enabled/default

应该已经定义了原始服务器块。根据要重定向的方向,使用以下选项之一。

选项1:将www重定向到非www

如果要将用户从www重定向到普通的非www域,请插入以下配置:

server {
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

保存并退出。这会将Nginx配置为将请求重定向到“ www.example.com ”到“example.com”。请注意,应该有另一个服务器块来定义您的非www Web服务器。

要使更改生效,请重新启动Nginx:

sudo service nginx restart

请注意,如果您使用的是HTTPS,则应将该listen指令设置为port 443而不是80

使用此curl命令确保非www域重定向到www域(用您的实际域替换突出显示的部分):

curl -I http://www.example.com

您应该得到一个301 Moved Permanently响应,显示非www重定向位置,如下所示:

HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 04 May 2015 18:20:19 GMT
Content-Type: text/html
Content-Length: 193
Connection: keep-alive
Location: http://example.com/

当然,您应该在Web浏览器(www和非www)中访问您的域以确保。

选项2:将非www重定向到www

如果要将用户从普通的非www域重定向到www域,请添加此服务器块:

新的服务器块 - 非www到www

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

保存并退出。这会将Nginx配置为将请求重定向到“example.com”到“ www.example.com ”。请注意,应该有另一个服务器块来定义您的www Web服务器。

要使更改生效,请重新启动Nginx:

sudo service nginx restart

请注意,如果您使用的是HTTPS,listen则应将该指令设置为port 443而不是80

使用此curl命令确保非www域重定向到www域(用您的实际域替换突出显示的部分):

curl -I http://example.com

您应该得到一个301 Moved Permanently响应,显示www重定向位置,如下所示:

HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 04 May 2015 18:20:19 GMT
Content-Type: text/html
Content-Length: 193
Connection: keep-alive
Location: http://www.example.com/

当然,您应该在Web浏览器(www和非www)中访问您的域以确保。

结论

完成!您的Nginx永久重定向现已正确配置,您的用户将能够通过非www和www域访问您的Web服务器。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Redirect www to Non-www with Nginx on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Debian 9上安装Nginx

    Nginx是世界上最受欢迎的网络服务器之一,负责托管互联网上一些规模最大,流量最高的网站。在大多数情况下,它比Apache更具资源友好性,可以用作Web服务器或...

    信姜缘
  • [快速入门]如何在Ubuntu 18.04上安装和保护Mosquitto MQTT消息传递代理

    MQTT是一种机器到机器的消息传递协议,旨在为“物联网”设备提供轻量级的发布/订阅通信。Mosquitto是一种流行的MQTT服务器(或MQTT中的代理),具有...

    信姜缘
  • 如何在CVM上安装R

    R是一种开源编程语言,专门用于统计计算和图形绘制。R在统计的基础下,被广泛用于开发统计软件和数据分析。R是一种日益流行且可扩展的语言,拥有活跃的社区,为特定的研...

    信姜缘
  • No Access-Control-Allow-Origin 问题解决

    最近将一个网站迁移到新的VPS,数据库,文件备份后部署遇到了许多奇奇怪怪的问题,但大多都是环境配置问题,由于要在主机部署多个网站,这里用到了VirtualHos...

    gigiwangs
  • 如何在Ubuntu 14.04上使用Apache将www重定向到非www

    当你有你的网站或应用程序启动和运行一个域的背后,则是经常需要还允许用户通过简单的域名访问到它,并在WWW子域名。也就是说,他们应该可以使用或不使用“ www. ...

    你在哪里
  • 如何在CentOS 7上使用Apache将www重定向到非www

    当你有你的网站或应用程序启动和运行一个域的背后,则是经常需要还允许用户通过简单的域名访问到它,并在WWW子域名。也就是说,他们应该可以使用或不使用“ www.”...

    圣人惠好可爱
  • 基于 Apache 构建 web虚拟主机详解

    虚拟 web 主机指的是在同一台服务器中运行多个 web 站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟” web主机。通过虚拟 web 主...

    小手冰凉
  • Linux系列 | 了解nohup和&的功效

    此时如果键入 Ctrl+C ,程序会收到一个 SIGINT信号,如果不做特殊处理,程序的默认行为是终止(如上图)。

    Tinywan
  • 利用caddy 部署https+proxy代理

    Caddy是一个使用 Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在 上手难度/配置难度 上面简单的不行不行的。 ...

    用户3157710
  • DC-1靶机实战和分析

    我们都知道,对靶机的渗透,可以宽阔自己的解题思路,练习并熟悉相关操作命令,提高自己的能力。下面我就对Vulnhub的DC-1靶机进行渗透,靶机设置了5个flag...

    雪痕@

扫码关注云+社区

领取腾讯云代金券