nginx rewrite proxy_pass location实践及正则匹配


本文以IT黑名单站点为例,讲述nginx的常见配置。

前置信息:
顶层容器nginx,下面跑一个php应用监听9000端口(tucao.itblacklist.cn),一个java应用监听8000端口(www.itblacklist.cn)。

需求信息如下:

  • html、js、css、jpg等静态资源尽量走nginx;
  • 首页默认不带index.html 但是也走nginx;
  • 前后端分离+优化url(笔者不确定这种优化是否起反作用),/s/?wd=xxx  -->  list.html?wd=xxx   /details/{num}  -->  details.html?u={num}
  • 其余请求转发到8000端口jetty容器(java应用);
  • itblacklist.cn的请求及权重永久转到www.itblacklist.cn;
  • tucao.itblacklist.cn转到php应用;

直接上配置

server {
	server_name www.itblacklist.cn;
	listen 80;
	root /opt/apps/blacklist/page;		#nginx server根目录
	
	# =精准匹配 /首页 该规则只匹配首页
	location =/ {}
	# ~* 不区分大小写的正则匹配  匹配所有以.html .gif等结尾的请求
	location ~* \.(html|gif|jpg|ico|js|css|map|svg|eot|tff|woff|woff2)$ {}
	
	# ^~ 匹配以某个开头的请求  该处匹配以/s/开头的请求
	location ^~ /s/ {
		rewrite /s/(.+)$ /$1 break;	
		proxy_pass http://www.itblacklist.cn/list.html;
		#... proxy头信息等
	}
	location ~* /details/([0-9]+)$ {
		rewrite /details/(.+)$ /details.html?u=$1 break;
	}
	location / {
		proxy_pass http://www.itblacklist.cn:8000;
		#...
	}
}
server {
	server_name itblacklist.cn;
	rewrite ^(.*)$ http://wwww.itblacklist.cn$1 permanent;
}
server {
	server_name tucao.itblacklist.cn;
	
	location / {
		proxy_pass http://www.itblacklist.cn:9000;
		#...
	}
}

重新加载nginx配置

nginx -s reload

至此,结束。


转载请注明来源【IT黑名单


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值