Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1083815
  • 博文数量: 83
  • 博客积分: 159
  • 博客等级: 上尉
  • 技术积分: 2221
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 17:08
个人简介

……致我那曾经苦逼的岁月……

文章分类
文章存档

2018年(1)

2017年(7)

2016年(13)

2014年(1)

2013年(12)

2012年(27)

2011年(22)

分类: 系统运维

2016-01-08 11:48:44

一转眼2016到了,时间过得真的很快,想想那个时候狂发博文还是2012年左右呢?当时为了获得奖品,天天各种研究啥的,嘿嘿,后来换了工作又因为各种原因,一直没发过博文了,回想一下差不多已经两年多时间没发博文了吧!以后如果有时间争取多多分享自己的工作经验。今天心血来潮,发表一个关于nginx跳转的问题。
需求:将不同域名无效的主机头跳转到各自域名的错误页面上。也就是说我现在一台服务器上配置了两个二级域名,比如是zzz.cn和abc.cn,下面有很多不同子站点,每个子站点一个配置文件,今天就用和这两个子站点做一下说明。
环境:以前这台服务器只有一个zzz.cn域名的环境,我们当时在DNS设置中基本上采用的是泛域名的解析,后来根据业务的发展需要配置另外一个abc.cn域名,在配置abc.cn域名之前就已经做了一个默认的站点default,也就是说访问zzz.cn域名下所有的无效主机头都跳转到指定的错误页面去了,但是这样有个问题,zzz.cn域名的无效主机头跳转肯定没问题了,但是新增的abc.cn域名的无效主机头也跳转到zzz.cn域名的指定错误页面就不合适了。
关于最开始配置的default.conf配置文件如下:
server {
  listen 80 default;
  server_name dynamics;
  rewrite (.+) $scheme:///index/error redirect;
}
前提是开发已经写好了这个域名的指定错误页面http:///index/error可以访问啊。比如用户输入了w或者abcd.zzzz.cn域名访问能跳转到http:///index/error页面。在nginx里面没有配置wwww和abcd子站点的配置。
更改需求后的配置:
还是修改default.conf文件做判断,修改后内容如下:
server {
  listen 80 default;
  server_name dynamics;
  if ($host ~* (.*)\.zzz.cn) {
  rewrite (.+) $scheme:///index/error redirect;
  }
  if ($host ~* (.*)\.abc.cn) {
  rewrite (.+) $scheme:///index/error redirect;
  }
}
通过配置也就是说只要访问zzz.cn和abc.cn域名的无效主机头(nginx里面没有配置的server_name)都会走这个默认的配置文件,然后根据条件判断跳转到各自域名对应的指定错误页面上。这里我就截图说明一下。免得大家说无图无真相,也顺便打个广告哈~~


这里再看一下另外一个域名的测试结果





阅读(7126) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

split_two2017-01-10 14:54:15

写一个有趣的配置,我们dns和第三方都用了泛解析,现在第三方告诉我如果用了泛解析导致的问题是配置https的域名可以能正常访问,但是没有配置的https域名也会跳转到一个http的子站点的页面(内容一样),而且url保持不变,这虽然不影响业务,但是影响很不好,经过如下配置可以让没有配置https的域名自动跳转到首页一个不存在的错误页面,最后通过程序跳转到首页
server {
  listen 443 default;
  server_name dynamics;
  ssl on;
  ssl_certificate   sslkey/_.kgc.cn_bundle.crt;      
  ssl_certificate_key     sslkey/_.kgc.cn.key; 
  ssl_session_timeout  5m; 
 &nb

周士昆2016-05-29 19:10:50

我来坐第一个沙发,写的俏吧。