商务服务
nginx配置url重定向-反向代理
2024-11-01 00:34

本文系统:Centos6.5_x64

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

三台主机: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错误

rewrite 指令:可以使用在 server, location, if 区域;

语法:rewrite regex replacement flag

按照相关的正则表达式与字符串修改URI,指令按照在配置文件中出现的顺序执行。  
可以在重写指令后面添加标记。  
如果替换的字符串以http://开头,请求将被重定向,并且不再执行多余的rewrite指令。  
尾部的标记(flag)可以是以下的值:

注 意如果一个重定向是相对的(没有主机名部分),nginx将在重定向的过程中使用匹配server_name指令的“Host”头或者 server_name指令指定的第一个名称,如果头不匹配或不存在,如果没有设置server_name,将使用本地主机名,如果你总是想让nginx 使用“Host”头,可以在server_name使用“*”通配符(查看http核心模块中的server_name)。例如:

但是如果我们将其放入一个名为/download/的location中,则需要将last标记改为break,否则nginx将执行10次循环并返回500错误。

如果替换字段中包含参数,那么其余的请求参数将附加到后面,为了防止附加,可以在最后一个字符后面跟一个问号:

注意:大括号({和}),可以同时用在正则表达式和配置块中,为了防止冲突,正则表达式使用大括号需要用双引号(或者单引号)。例如要重写以下的URL:

为:

则使用以下正则表达式(注意引号):

如果指定一个“?”在重写的结尾,Nginx将丢弃请求中的参数,即变量$args,当使用$request_uri或$uri&$args时可以在rewrite结尾使用“?”以避免nginx处理两次参数串。  
在rewrite中使用$request_uri将www.example.com重写到example.com:

同样,重写只对路径进行操作,而不是参数,如果要重写一个带参数的URL,可以使用以下代替:

注意$args变量不会被编译,与location过程中的URI不同(参考http核心模块中的location)

示例:当访问www.lansgg.com的时候跳转到www.Aries.com;

break 指令 可使用server, location, if 区域; 中止Rewirte,不在继续匹配

last 指令 可server, location, if  区域;

last与break的区别在于,last并不会停止对下面location的匹配。

测验一下break与last的区别


使用break会停止匹配下面的location,直接发起请求www.lansgg.com/c1.html,他会显示c2的内容;

wKiom1ReJwmg3h4tAABlg5WLTFc650.jpg 
使用last的话,会继续搜索下面是否有符合条件(符合重写后的/c2.html请求)的location。此时,/c2.html刚好与面location的条件对应上了,进入花括号{}里面的代码执行,这里会返回508。

使用firebug 可以看到;

wKiom1ReJ_bR_WwhAACvgot1dVM022.jpg

if 指令 可使用server, location 区域;

示例:当访问http://www.lansgg.com网址的时候跳转到www.Aries.com;

wKioL1ReMavwbbrPAAEAO-or-Mg289.jpg

return 指令 可使用server, location, if  区域

语法:return code  
这个指令结束执行配置语句并为客户端返回状态代码,可以使用下列的值:204,400,402-406,408,410, 411, 413, 416与500-504。此外,非标准代码444将关闭连接并且不发送任何的头部。

rewrite_log  指令  可使用server, location, if  区域

启用时将在error log中记录notice 标记的重写日志。

set 指令 可使用server, location, if  区域

语法:set variable value  
指令设置一个变量并为其赋值,其值可以是文本,变量和它们的组合。  
你可以使用set定义一个新的变量,但是不能使用set设置$http_xxx头部变量的值。

uninitialized_variable_warn 指令 可使用 http, server, location, if  区域

语法:uninitialized_variable_warn on|off  
默认值:uninitialized_variable_warn on  
开启或关闭在未初始化变量中记录警告日志。  
事实上,rewrite指令在配置文件加载时已经编译到内部代码中,在解释器产生请求时使用。  

expires 指令 可 http, server, location 区域

语法: expires [time|epoch|max|off]
默认值: expires off
该指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定的 time 值来获得。
epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。
max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。
-1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期
“Cache-Control”头标的值由指定的时间来决定:
    负数:Cache-Control: no-cache
    正数或零:Cache-Control: max-age = #, # 为指定时间的秒数s。其他的单位有d(天),h(小时)

"off" 表示不修改“Expires”和“Cache-Control”的值
控制图片等过期时间为30天,这个时间可以设置的更长。具体视情况而定

控制匹配/resource/或者/mediatorModule/里所有的文件缓存设置到最长时间

设定某个文件的过期时间;这里为600秒,并不记录访问日志

设置GZIP


一般情况下压缩后的html、css、js、php、jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的html,压缩后只剩下25k。这无疑能节省很多带宽,也能降低服务器的负载。
在nginx中配置gzip比较简单
一般情况下只要在nginx.conf的http段中加入下面几行配置即可

可以通过网页gzip检测工具来检测网页是否启用了gzip

临时重定向示例:访问www.lansgg.com/c 重定向到www.lansgg.com/cc 

访问http://www.lansgg.com/c 会跳转到http://www.lansgg.com/cc

wKioL1RePF6hWtH5AAFKE7zHvzw477.jpg

302即为临时重定向;

永久重定向(隐含重定向)

访问 http://www.lansgg.com/c/ 页面显示的是跳转后的页面,可是url却没有变化;firebug也看不到302代码信息;现在它其实是301;

2、反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

2.1、配置nginx实现反向代理;

需求:访问http://192.168.10.128/other 返回 apache主机的other目录下的Index.html

wKioL1Rd21mwBFavAAIkMKYLkDs383.jpg

涉及nginx指令:

语法:proxy_pass URL    
可使用字段:location, location中的if字段       
这个指令设置被代理服务器的地址和被映射的URI,地址可以使用主机名或IP加端口号的形式,例如:proxy_pass http://192.168.10.129/url

2.2、配置nginx配置文件nginx.conf

2.3、配置client1

2.4、测试;

访问url:    http://www.lansgg.com/other     你会发现跳转到了 : http://192.168.10.129/other/ 

    以上就是本篇文章【nginx配置url重定向-反向代理】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/7879.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
【百度移动推广
  移动互联网时代:百度为您创造新的营销价值  CNNIC发布的第31次统计报告显示:截至2012年12月底,我国有4.2亿的移动网民,
Nginx重写功能和反向代理的用法详解
1.1 if 指令用于条件匹配判断,并根据条件判断结果选择不同的Nginx配置,可以配置在server或location块中进行配置,Nginx的if语
上门预约服务APP+H5+小程序平台搭建
构建一站式健康理疗平台:深度解析多元化服务、源码交付与智能预约的APP+H5+小程序综合解决方案随着健康意识的不断提高,人们对
qq聊天的搞笑段子
  超有幽默感的段子,经典内涵搞笑段子大全能笑死人的,我们通过交流说话来使用这些段子。接下来就是学习啦小编为你精心准备的
PHP REST API 极光推送
极光自年成立以来专注于为app提供稳定的开发者服务。 极光产品覆盖了中国国内90%的移动终端。 基于积累的海量数据,拓展了
word标题大纲级别_论文标题目录和图表自动生成的方法!
目录作为论文的导读图,与文章内容一一对应,一篇论文,通常会有各级各类标题,当内容的层次较多时
中国人导致死亡的10大原因
中国人导致死亡的10大原因 常见食物对常见病的影响 十字花科蔬菜包含花菜、西兰花(青花菜)、小洋白菜、白菜、卷心菜等,具有最强
一款简易大众点评项目实战——解决Session不一致、缓存问题
黑马点评是⼀个大量使用Redis的项目,该项目的功能类似大众点评 前端界面: 数据库表: 后端代码:conf
不忘初心 牢记使命
  1.《共产党员如何不忘初心牢记使命》  党的十九大报告指出:“不忘初心,方得始终。中国共产党人的初心和使命,就是为中国
Neutron 理解 (1): Neutron 所实现的网络虚拟化
特别说明:本文于2015年基于OpenStack M版本发表于本人博客,现转发到公众号。因为时间关系,本文部分内容可能已过时甚至不正确
本企业新闻

点击拨打: