nginx rewrite proxy_pass location实践及正则匹配

来源:互联网 发布:java调用ocx控件实例 编辑:程序博客网 时间:2024/05/21 09:42

本文以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黑名单】


原创粉丝点击