Nginx服务,重写模块应用实战

  

Nginx服务,重写模块应用实战

  

演示1:基于域名的跳转

  

?<强>应用场景:原域名即将不可用,现用新的域名代替

  

?<强>理论结果:强输入旧域名,自动跳转到新域名,且其它参数不变

  

DNS方向   

 <代码类=" language-shell "> [root@localhost ~] # rpm -Uvh http://nginx.org/packages/centos/7/noarch/rpms/nginx -释放- centos - 7 - 0. - el7.ngx.noarch.rpm//百胜库升级
  获取http://nginx.org/packages/centos/7/noarch/rpms/nginx -释放- centos - 7 - 0. el7.ngx.noarch.rpm
  警告:/var/tmp/rpm-tmp。zvmFF2:头V4 RSA/SHA1签名,密钥ID 7 bd9bf62: NOKEY
  准备中……################################# [ 100%)
  正在升级/安装……
  1:nginx -释放- centos - 7 - 0. el7。ngx # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # (100%)
  (root@localhost ~) # yum安装nginx - y #安装nginx服务
  root@localhost ~ # yum安装绑定- y
  # vim/etc/named.conf root@localhost ~
  # # #按照下面进行修改
  选项{
  监听端口53{任何;};#监听所有的53端口
  listen-on-v6 53端口{::1;};
  目录“/var/命名”;
  转储文件/var/叫/数据/cache_dump.db”;
  statistics-file "/var/叫/数据/named_stats.txt”;
  memstatistics-file "/var/叫/数据/named_mem_stats.txt”;
  recursing-file "/var/叫/数据/named.recursing”;
  secroots-file "/var/叫/数据/named.secroots”;
  allow-query{任何;};#允许所有通过
  
  # vim/etc/named.rfc1912.zones root@localhost ~
  # # # #添加如下
  区“test.com”{
  类型的主人;
  文件“named.test”;
  };
  
  # cp - p/var/named/named. root@localhost ~localhost/var/named/named.test
  # vim/var/named/named.test root@localhost ~
  # # # # #按照下面进行修改
  TTL美元1 d
  SOA中的@ @ rname.invalid。(
  0;串行
  1 d;刷新
  1 h;重试
  1 w;到期
  3 h);最低
  NS @
  一个127.0.0.1
  www的192.168.142.128
  
  root@localhost ~ # systemctl开始命名
  (root@localhost ~) # systemctl firewalld.service停止
  (root@localhost ~) # setenforce 0  
  

Nginx方向   

 <代码类=" language-shell "> root@localhost ~ # vim/etc/nginx/conf.d/default.conf
  # # # #按下面进行更改
  服务器{
  听80;
  server_name www.test.com;#指定域名
  
  utf - 8字符集;#指定字符集
  access_log/var/log/nginx/test.com-access.log主要;#指定访问日志文件位置
  
  root@localhost ~ # systemctl开始nginx
  (root@localhost ~) # netstat -atnp | grep nginx
  tcp 0 0 0.0.0.0:80 0.0.0.0: * 4028/nginx:听大师 
  

此时,能够对原域名进行正常的访问

  

 Nginx服务,重写模块应用实战

  

为了满足实验要求,现对新域名添加dns区域

  
 <代码类=" language-shell "> root@localhost ~ # vim/etc/nginx/conf.d/default.conf
  位置/{
  # # # #在位置后面添加下面两行
  如果主机($=' www.test.com ') {
  重写^/(. *)http://www.yun.com/1美元永久性的;
  }
  
  # vim/etc/named.rfc1912.zones root@localhost ~
  # # #为新域名增添新的dns区域
  区“yun.com”{
  类型的主人;
  文件“named.yun”;
  };
  
  # cp - p/var/named/named. root@localhost ~测试/var/named/named.yun
  root@localhost ~ # systemctl重新命名
  (root@localhost ~) # systemctl重启nginx  
  

实验成功,成功从旧域名自动跳转到新域名

  

 Nginx服务,重写模块应用实战

  

演示2:基于客户端IP跳转

  

?<强>应用场景:强网站维护时仅有个别用户能够正常进行访问,其余用户仅能访问维护页面

  

?<强>理论结果:一台客户机进行访问时自动进行IP比对,按表进行分类

  

DNS方向   

?<强>同演示1,不用进行改变。

  

Nginx方向   

 <代码类=" language-shell "> root@localhost ~ # vim/etc/nginx/conf.d/default.conf
  # # # #按下面进行添加
  位置/{
  根/usr/share/nginx/html;
  指数指数。html你;
  }
  
  设置$ ip真;#设定变量为真实的
  if ($ remote_addr=?92.168.142.129”){#匹配IP地址为“192.168.142.129”时
  设置$ ip假;#变量变更为假
  }
  如果($ ip=true){#匹配变量为真时
  重写^//weihu.html美元(. *);#跳转网页到维护页面
  }
  位置=/weihu。html{#匹配到维护页面时
  根/usr/share/nginx/html;#指定网页站点
  }
  
  (root@localhost ~) # systemctl重启nginx 

Nginx服务,重写模块应用实战