调整Nginx服务器配置,实现:

1.所有访问a.html的请求,重定向到b.html;

2.所有访问Nginx服务器(192.168.4.1)的请求重定向至www.baidu.com;

3.所有访问Nginx服务器(192.168.4.1)/下面子页面,重定向至www.baidu.com/下相同的页面.

4.实现firefox与curl访问相同页面文件,返回不同的内容

总结地址重写的格式有:

rewrite 旧地址 新地址 [选项];

last 不再读其他rewrite

break 不再读其他语句,结束请求

redirect 临时重定向

permament 永久重定向

1. 所有访问a.html的请求,重定向到b.html

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

......

server {

listen 80;

server_name localhost;

rewrite /a.html /b.html redirect;    //地址跳转到b.html

location / {

root html;

index index.html index.htm;

}

}

# echo "test page" > /usr/local/nginx/html/b.html   //在网页文件里写入数据,用于测试

# /usr/local/nginx/sbin/nginx -s reload   //重启,加载配置

[root@client ~]# firefox http://192.168.4.5/a.html    //客户端测试,访问a.html,但浏览器地址栏会自动跳转到b.html的页面

2.所有访问Nginx服务器(192.168.4.1)的请求重定向至www.baidu.com

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

......

server {

listen 80;

server_name localhost;

rewrite  ^/  http://baidu.com/ ;    //地址跳转到百度

location / {

root html;

index index.html index.htm;

}

}

# /usr/local/nginx/sbin/nginx -s reload   //重启,加载配置

[root@room9pc01 ~]# firefox http://192.168.4.1   //真机上访问Nginx服务器,浏览器地址栏自动跳转至www.baidu.com

3.所有访问Nginx服务器(192.168.4.1)/下面子页面,重定向至www.baidu.com/下相同的页面

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

......

server {

listen 80;

server_name localhost;

rewrite  ^/(.*)$  http://baidu.com/ $1;    //地址跳转到百度下的子页面,这里用到了正则,即以/开头,以任意内容结尾(.*)$

location / {

root html;

index index.html index.htm;

}

}

# /usr/local/nginx/sbin/nginx -s reload   //重启,加载配置

[root@room9pc01 ~]# firefox http://192.168.4.1/test   //真机上访问Nginx服务器下的子页面,浏览器地址栏自动跳转至www.baidu.com/子页面

4.实现firefox与curl访问相同页面文件,返回不同的内容

4.1创建网页目录以及对应的页面文件,用于测试:

# echo "I am normal page" > /usr/local/nginx/html/test.html

# mkdir -p /usr/local/nginx/html/firefox/

# echo "wo shi firefox page" > /usr/local/nginx/html/firefox/test.html

4.2修改Nginx服务配置

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

......

server {

listen 80;

server_name localhost;

location / {

root html;

index index.html index.htm;

}

if ($http_user_agent ~* firefox) {    //变量$http_user_agent能识别客户端的firefox浏览器,这里的符号~示意正则匹配,符号*示意不区分大小写

rewrite ^/(.*)$  /firefox/$1;

}

}

# /usr/local/nginx/sbin/nginx -s reload   //重启,加载配置

# firefox http://192.168.4.1/test.html     //使用火狐浏览器访问Nginx服务器

# curl http://192.168.4.1/test.html    //本地curl访问Nginx服务器

结束.

Nginx服务的地址重写的更多相关文章

  1. nginx篇最初级用法之地址重写

    nginx服务器的地址重写,主要用到的配置参数是rewrite rewrite regex replacement flag rewrite 旧地址 新地址 [选项] 支持的选项有: last 不再读 ...

  2. 高级运维(三):部署Lnmp环境、构建Lnmp平台、地址重写

    一.部署LNMP环境 目标: 安装部署Nginx.MariaDB.PHP环境 1> 安装部署Nginx.MariaDB.PHP.PHP-FPM: 2> 启动Nginx.MariaDB.FP ...

  3. Linux服务之nginx服务篇五(静态/动态文件缓存)

    一.nginx实现静态文件缓存实战 1.nginx静态文件缓存 如果要熟练使用nginx来实现文件的缓存,那下面的几个指令你必须要牢记于心 (1)指令1:proxy_cache_path 作用:设置缓 ...

  4. nginx反向代理,负载均衡,动静分离,rewrite地址重写介绍

    一.rewrite地址重写 地址转发后客户端浏览器地址栏中的地址显示是不变的,而地址重写后地址栏中的地址会变成正确的地址. 在一次地址转发过程中只会产生一次网络请求,而一次地址重写产生两次请求. 地址 ...

  5. Apache Nginx URL 地址 重写

    URL重写这东西在工作中用了很多次了,但每次都忘记了要记得把知道的积累下来. 哎,要么认为没必要,要么就是没时间?! 一.Apache 篇 官方地址:http://man.chinaunix.net/ ...

  6. 9. nginx服务实验笔记

    LNMP安装与配置   Nginx与apache.lighttp性能综合对比,如下图:     一.系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu系统 需要3GB以上硬盘 ...

  7. Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存

    Nginx地址重写 Nginx rewrite rewrite语法规则1).变量名可以使用 "=" 或 "!=" 运算符~ 区分大小写~* 不区分大小写^~ 禁 ...

  8. nginx服务部署 说明

    第1章 常用的软件 1.1 常用来提供静态服务的软件   Apache :这是中小型Web服务的主流,Web服务器中的老大哥,   Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...

  9. 1.Nginx服务应用

    Nginx服务应用 Nginx的优点和作用 Nginx是一款高性能的HTTP和反向代理的服务器软件,还是一个IMAP/POP3/SMTP(邮件)代理服务器! Nginx在功能实现上都采用模块化结构设计 ...

随机推荐

  1. [luoguP1197] [JSOI2008]星球大战(并查集)

    传送门 思维!重要的是思维! 题目让删边,然而并查集不好删边(并!查!集!啊) 我们离线处理,从后往前添边,这样并查集就可以用了. 用并查集维护连通块个数即可. ——代码 #include <c ...

  2. 清北学堂模拟赛d1t6 或和异或(xor)

    题目描述 LYK最近在研究位运算,它研究的主要有两个:or和xor.(C语言中对于|和^) 为了更好的了解这两个运算符,LYK找来了一个2^n长度的数组.它第一次先对所有相邻两个数执行or操作,得到一 ...

  3. 洛谷 P1521 求逆序对

    题目描述 我们说(i,j)是a1,a2,…,aN的一个逆序对当且仅当i<j且ai>a j.例如2,4,1,3,5的逆序对有3个,分别为(1,3),(2,3),(2,4).现在已知N和K,求 ...

  4. Java 和JS Base64加密

    项目在登录.注册等场景实现时,经常会用到用户信息前端加密,然后项目后端二次解密,避免信息直接在浏览器上以明文显示. 本文主要介绍了base64加密的方式处理代码,不支持中文 源码如下: base64. ...

  5. hibernate使用c3p0数据源

    在配置好hibernate连接数据库环境的前提下,我们进行例如以下操作就能够搭建好hibernate中使用c3p0数据源的环境了. 1). 导入 jar 包: hibernate-release-4. ...

  6. java 的collection

    参考:http://skyuck.iteye.com/blog/526358 https://www.tutorialspoint.com/java/java_collections.htm Prio ...

  7. 【安卓笔记】ormlite入门

    ps:写这篇文章的目的是尝试下新的markdown编辑器哈哈 简单介绍 ORMLite provides a lightweight Object Relational Mapping between ...

  8. 虚拟机 开发板 PC机 三者之间不能ping通的各种原因分析

    这个问题事实上也相对照较简单.可是非常多网友都给我发消息说 遇到不能ping,每一个人都得回答一次确实显得心有余而力不足.如今我对遇到这几种问题给出最完整的解决方式. (说实话基本上也仅仅要这几种可能 ...

  9. Java时间转换

    package com.fh.util; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseE ...

  10. MFC的UI更新机制和加速键的创建

    近期在看<MFC Windows程序设计>这本书,正好看到更新菜单中的菜单项和加入菜单项的加速键这方面的内容,下面总一下总结. MFC提供的更新菜单项的机制例如以下: 通过消息映射表中的O ...