详解nginx配置url重定向-反向代理

这篇文章主要介绍了详解nginx配置url重定向-反向代理 ,nginx的重定向和nginx的反向代理的原理还是有区别的。有兴趣的可以了解一下。
本文系统:Centos6.5_x64

三台主机:nginx主机,hostname: master.lansgg.com IP: 192.168.10.128
apache主机,hostname: client1.lansgg.com IP: 192.168.10.129

一、nginx 地址重定向

二、nginx 反向代理

1、地址重定向:是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网址,转成较短的网址。因为当要传播某网站时,常常因为网址太长,不好记忆;又有可能因为换了网路的免费网页空间,网址又必须要变更,不知情的使用者还以为网站关闭了。这时就可以用网路上的转址了。这个技术使一个网页是可借由不同的统一资源定位符(URL)连结。

1.1、这 个模块允许使用正则表达式重写URI(需PCRE库),并且可以根据相关变量重定向和选择不同的配置。如果这个指令在server字段中指定,那么将在被 请求的location确定之前执行,如果在指令执行后所选择的location中有其他的重写规则,那么它们也被执行。如果在location中执行这 个指令产生了新的URI,那么location又一次确定了新的URI。这样的循环可以最多执行10次,超过以后nginx将返回500错误

正则表达式匹配,其中:

  • ~ 为区分大小写匹配

  • ~* 为不区分大小写匹配

  • !和!*分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配,其中:

  • -f和!-f用来判断是否存在文件

  • -d和!-d用来判断是否存在目录

  • -e和!-e用来判断是否存在文件或目录

  • -x和!-x用来判断文件是否可执行

flag标记有:

  • last 相当于Apache里的[L]标记,表示完成rewrite

  • break 终止匹配, 不再匹配后面的规则

  • redirect 返回302临时重定向 地址栏会显示跳转后的地址

  • permanent 返回301永久重定向 地址栏会显示跳转后的地址

一些可用的全局变量有,可以用做条件判断

a r g s , 请 求 中 的 参 数 ; args, 请求中的参数; args,;content_length, HTTP请求信息里的"Content-Length"; c o n t e n t t y p e , 请 求 信 息 里 的 " C o n t e n t − T y p e " ; content_type, 请求信息里的"Content-Type"; contenttype,"ContentType";document_root, 针对当前请求的根路径设置百度收录批量查询值; d o c u m e n t u r i , 与 document_uri, 与 documenturi,uri相同; h o s t , 请 求 信 息 中 的 " H o s t " , 如 果 请 求 中 没 有 H o s t 行 , 则 等 于 设 置 的 服 务 器 名 ; host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名; host,"Host"Host;limit_rate, 对连接速率的限制; r e q u e s t m e t h o d , 请 求 的 方 法 , 比 如 " G E T " 、 " P O S T " 等 ; request_method, 请求的方法,比如"GET"、"POST"等; requestmethod,"GET""POST";remote_addr, 客户端地址; r e m o t e p o r t , 客 户 端 端 口 号 ; remote_port, 客户端端口号; remoteport,;remote_user, 客户端用户名,认证用; r e q u e s t f i l e n a m e , 当 前 请 求 的 文 件 路 径 名 request_filename, 当前请求的文件路径名 requestfilename,request_body_file r e q u e s t u r i , 请 求 的 U R I , 带 查 询 字 符 串 ; request_uri, 请求的URI,带查询字符串; requesturi,URI;query_string, 与 a r g s 相 同 ; args相同; args;scheme, 所用的协议,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com 1 r e d i r e c t ; 1 redirect; 1redirect;server_protocol, 请求的协议版本,“HTTP/1.0"或"HTTP/1.1”; s e r v e r a d d r , 服 务 器 地 址 , 如 果 没 有 用 l i s t e n 指 明 服 务 器 地 址 , 使 用 这 个 变 量 将 发 起 一 次 系 统 调 用 以 取 得 地 址 ( 造 成 资 源 浪 费 ) ; server_addr, 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费); serveraddr,listen使();server_name, 请求到达的服务器名; s e r v e r p o r t , 请 求 到 达 的 服 务 器 端 口 号 ; server_port, 请求到达的服务器端口号; serverport,;uri, 请求的URI,可能和最初的值有不同,比如经过重定向之类的。
rewrite 指令:可以使用在 server, location, if 区域;

语法:rewrite regex replacement flag

按照相关的正则表达式与字符串修改URI,指令按照在配置文件中出现的顺序执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值