天天看点

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

一、虚拟主机别名介绍

二、实施方法

第一种方法:Nginx虚拟主机的别名配置

更改wtf.conf配置文件

[root@nginx-oldboy conf]# vim extra/wtf.conf

3    server_name  www.afeilinux.com afeilinux.com;

比较更改前后配置文件

<a href="https://s3.51cto.com/wyfs02/M00/99/7A/wKioL1lIyumy70n8AAAswggfBgg346.png" target="_blank"></a>

<a href="https://s3.51cto.com/wyfs02/M01/99/7A/wKiom1lIyurC__9fAAAo--h43dg447.png" target="_blank"></a>

语法检查与重新加载

[root@nginx-oldboy conf]# nginx -t

<a href="https://s4.51cto.com/wyfs02/M01/99/7A/wKioL1lIy3OD6ibzAAAWPJ3nvdg403.png" target="_blank"></a>

[root@nginx-oldboy conf]# nginx -s reload

更改hosts

[root@nginx-oldboy conf]# vim /etc/hosts

测试

[root@nginx-oldboy conf]# curl www.afeilinux.com

第一次测试

[root@nginx-oldboy conf]# curl afeilinux.com

<a href="https://s5.51cto.com/wyfs02/M00/99/84/wKiom1lJFJCCRp2WAAAgzxGmGgY613.png" target="_blank"></a>

虚拟主机别名在生产中实际运用

多数企业网站希望访问www.afeilinux.com和afeilinux.com时,所浏览的是同一个页面,若有这类需求,就可以让afeilinux.com以别名的方式出现,这时两个域名都要解析到服务器的IP地址。

第二种方法:Nginx rewrite

Nginx rewrite概念

和Apache等Web服务软件一样,Nginx rewrite的主要功能也是实现URL地址重写。Nginx的rewrite规则需要PCRE软件的支持,即通过perl兼容正则表达式语法进行规则匹配。所以在安装Nginx时要安装PCRE软件,同时也让Nginx支持了rewrite的功能,默认参数编译时,Nginx就会安装支持rewrite的模块,但是,也必须要有PCRE软件的支持。

查看安装Nginx版本和模块的信息:

[root@nginx-oldboy ~]# nginx -V

<a href="https://s4.51cto.com/wyfs02/M02/99/85/wKioL1lJGc6TOREAAAAyfLXDVmg664.png" target="_blank"></a>

rewrite指令语法

语法:rewrite regex replacement[flag]

默认值:none

应用位置:server、location、if

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分的内容,重定向到replacement部分,结尾是flag标记。下面是个简单的URL rewrite跳转的例子:

Nginx rewrite的企业应用场景

(1)可以调整用户浏览的URL,使其看起来更规范,合乎开发及产品人员的需求。

(2)为了让搜索引擎收录网站内容,并让用户体验更好,企业会将鼎泰URL地址伪装成静态地址提供服务。

(3)网站换新域名后,让旧域名的访问跳转到新的域名上,例如:让京东的360buy换成了jd.com。

(4)根据特殊变量、目录、客户端的信息进行URL跳转等。

Nginx rewrite 301跳转

实验背景:实现域名从afeilinux.org跳转到www.afeilinux.org

查看原来虚拟主机的配置:

[root@nginx-oldboy extra]# cat org.conf

<a href="https://s1.51cto.com/wyfs02/M00/99/86/wKiom1lJI4jRRFiFAAAnhckOBzI146.png" target="_blank"></a>

更改之后的虚拟主机配置:

<a href="https://s2.51cto.com/wyfs02/M01/99/90/wKioL1lJ2IHQRuS4AAA3hsuBSYQ028.png" target="_blank"></a>

语法检测与nginx重启

[root@nginx-oldboy extra]# nginx -t

[root@nginx-oldboy extra]# nginx -s reload

<a href="https://s2.51cto.com/wyfs02/M00/99/90/wKiom1lJ2N_AsDp1AABMffnzafo797.png" target="_blank"></a>

curl测试:

<a href="https://s4.51cto.com/wyfs02/M01/99/90/wKioL1lJ2dyzosC8AAAt3hjR8Ao196.png" target="_blank"></a>

     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1940440,如需转载请自行联系原作者

继续阅读