nginx技术(4)nginx地址重写

server{
listen   80;
server_name  www.codesky.net;
location/{
proxy_pass   http://192.168.1.11:8080;
proxy_redirect  off;
proxy_set_header  Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite  "/zixun/([0-9]+)(/*).html$"  /zixun/$1/last;
rewrite "/loanProduct/([0-9]+).html$"  /loanProduct/show?id=$1last;
}
}

解释:

rewrite"/zixun/([0-9]+)(/*).html$" /zixun/$1/last;

"/zixun/([0-9]+)(/*).html$"为正则表达式匹配你输入的url地址,表示/zixun/任意数字,至少出现一次,/出现0次或者多次,已.html结尾

/zixun/$1/last;符合以上规则的url转发到/zixun/$1/到这个链接上,这个就是你实现要获得数据的链接了,last为后面的不进行匹配了

如:http://www.xx.con/zixun/56.html会把这个请求转发到www.xx.con/zixun/56的servlet上获得数据

Rewrite的Flags

last-基本上都用这个Flag。
break-中止Rewirte,不在继续匹配
redirect-返回临时重定向的HTTP状态302
permanent-返回永久重定向的HTTP状态301

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/web/

规则:

一般在非根的location中配置rewrite,都是用的break;而根的location使用last比较好,因为如果配置了fastcgi或代理访问jsp文件的话,在根location下用break是访问不到

正则表达式形式的模式匹配,如~*和~

~iscase-sensitivematch;

‘~’表示大小写敏感的匹配

~*specifiesacase-insensitivematch(firefoxmatchesFireFox)

‘~*’表示大小写不敏感的匹配(例如:“firefox”字符串可以成功匹配“FireFox”)

!~and!~*meantheopposite,"doesn'tmatch"

!~和!~*代表跟后面的正则匹配规则相反的规则,表示不能匹配当前正则表达式规则的字符串执行后面的处理语句

checkingfortheexistenceofafileusingthe -f and! f operators;使用-f参数以及!-f参数检测一个文件是否存在

checkingexistenceofadirectoryusingthe -d and! -d operators;使用-d参数以及!-d参数检测一个目录(路径)是否存在

checkingexistenceofafile,directoryorsymboliclinkusingthe -e and! -e operators;使用-e以及!-e检测是否存在一个文件,一个目录或者一个符号链接。

checkingwhetherafileisexecutableusingthe -x and! -x operators.使用-x以及!-x检测一个文件是否可执行

Partsoftheregularexpressionscanbeinparentheses,whosevaluecanthenlaterbeaccessedinthe $1 to $9 variables.

正则表达式部分可以嵌套,表达式后面的部分如果用到前面的表达式可以用$1到$9变量表示。

本文出自 “好好活着” 博客,请务必保留此出处http://wolfword.blog.51cto.com/4892126/1205216

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索正则表达式
, html
, last
, 规则
, 一个
, nginx匹配优先级
, Operators
Rewirte
nginx 地址重写、nginx url 重写、nginx 重写、nginx重写规则、nginx 路由重写,以便于您获取更多的相关知识。

时间: 2024-09-19 09:16:54

nginx技术(4)nginx地址重写的相关文章

nginx配置详解-url重写、反向代理、负载均衡

应用层的负载均衡 master/worker结构:一个master进程,生成一个或多个worker子进程 nginx请求的连接方式epoll 是Linux下多路复用IO接口select/poll的增强版本 select 遍历epoll无需遍历 1.nginx安装(未安装邮件服务器模块) ./configure --help查看编译选项 配置文件中路径没加/以prefix指定的路径开始./configure \--prefix=/usr \--sbin-path=/usr/sbin/nginx \

nginx技术(1)nginx高并发介绍和nginx安装

nginx介绍和安装 一,nginx为什么支持高并发?epoll和select的区别 开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll.nginx就是用这种方式编写的.大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了.我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢? 先简单回顾下如何使用C库封装的3个epoll系统调用吧.

Nginx获取真实IP地址方法

问题现象 网站业务架构为: 高防->WAF->slb 7层->ECS Nginx在ECS上获取真实的客户端IP地址,配置不生效. 测试环境 高防IP为:118.xxx.xxx.204 WAF的Cname为:9qlliqgcxxxxxu0z.aliyunwaf.com 120.xxx.xxx.174  测试的域名为:there.pier39.cn 负载均衡的IP为: 119.xxx.xxx.162 ECS的IP为:120.xxx.xxx.201 [root@xx nginx]# uname

nginx技术(3)反向代理和负载均衡

反向代理和负载均衡 一,传统的代理(apache/squid)的同步传输和nginx的异步传输的差异. 二,同步传输和异步传输的比较 squid同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道.在请求发起直到请求完成,这条通道都是一直存在的. nginx异步传输:浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header)先收到nginx上,然后nginx再把这个请求发到后端, 后端处理完之后把数据返回到nginx上,nginx将数据流发到浏览器

nginx技术(2)nginx的配置详解

nginx的配置 1,启动nginx [root@centos6 nginx-1.2.9]# /usr/sbin/nginx -c /etc/nginx/nginx.conf 启动nginx [root@centos6 nginx-1.2.9]# ps -ef|grep nginx 查看进程 root 5479 1 0 04:15 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 548

一起谈.NET技术,ASP.NET的地址重写(URLRewriter)实现原理及代码示例

一.概述 访问者输入:http://wu-jian.cnbolgs.com/default.aspx,实际请求和响应的地址却是:http://www.cnblogs.com/wu-jian/default.aspx, 这就是UrlRewrite,除了实现二级域名功能,它在简化用户输入地址.SEO.网站版本迭代更新等多个方面发挥着重要作用. 微软曾在.net framework 1.1中提供过一个名为URLRewriter的小工具供开发人员轻松实现UrlRewrite,下载地址为:http://d

详谈关于Discuz!NT 的URL地址重写(URLRewrite)

在Discuz!NT中的前台页面访问(特别是aspx)是被HttpModule接管的,所以大家在Discuz.Web项目的目录下看到的唯一"aspx文件"是index.aspx,而所有其它前台页面都有"/aspx/"文件夹下的相应的子目录中,而这些子目录名称是与后台所"生成"的模板存在对应关系的.而这种"关系"的绑定是通过dnt_templates(模板数据表)来进行关联的.而有关模板机制的文章详见:     "Di

Nginx配置文件(nginx.conf)配置详解(总结)_nginx

现在经常碰到有新用户问一些很基本的问题,最近整理了一下,Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; 错误日志:

【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

 1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx]# ps –ef | grep nginx [root@localhost nginx]# ps -ef | grep nginx root     21094     1  0 07:52 ?        00:00:00 nginx: master process ./nginx -c ngi