Nginx之http服务器(动静分离)+ rewrite
2021/8/16 7:07:38
本文主要是介绍Nginx之http服务器(动静分离)+ rewrite,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
http服务器(动静分离)
Nginx作为http服务器,可以用于存放静态资源(比如css、图片、音频等),实现web服务的动静分离。(tomcat等作为动态资源服务器。静态资源访问Nginx,其它访问tomcat)。 配置流程
- 从原项目包种移除static静态资源包的文件;
- 在/usr/nginx目录下创建resources文件夹
- 将静态资源包放入resources中
- 修改配置文件nginx.conf
location ~*\.(css|js|html)$ { root resources; #指向静态资源 index index.html #配置缓存有效天数 expires 7d; } location ~\*.(jpg|png|mp3|mp4)$ { root resources; index index.html #有效天数 expires 20d; }location基本语法:
location[ = | ~ | ~* | ^~] url{ }
- = 精确匹配
- ~ 区分大小写的正则匹配
- ~* 不区分大小写的正则匹配
- ^~ 以某个常规字符串开头的匹配
- 如果有url包含正则表达式,不需要有~开头标识
- 动静分离:就是将css、js、jpg、音频等静态资源和jsp等动态资源分开处理,以提高服务器响应速度,提高性能。
rewrite/地址重定向
能够使用rewrite指令的字段包括:http、server、location。 Rewrite语法
rewrite 正则表达式 定向后的位置 [模式]
例子:
location /ecshop { index index.php; rewrite goods-([\d]+)\.html$ /ecshop/goods.php?id=$1; rewrite category-(\d+)-b(\d+)\.html /ecshop/category.php?id=$1&brand=$2 permanent; }
server { listen 80; server_name abc.com www.abc.com; if ( $host != 'www.abc.com' ) { rewrite ^/(.*) http://www.abc.com/$1 permanent; } location / { root /data/www/www; index index.html index.htm; } }
注意:用url重写时, 正则里如果有”{}”,正则要用双引号包起来。
模式:last | 本条规则匹配完成后继续向下匹配新的location URI规则 |
break | 本条规则匹配完成后终止,不在匹配任何规则 |
redirect | 返回302临时重定向 |
permanent | 返回301永久重定向 |
重写中用到的指令:
- if (条件) {} 设定条件,再进行重写
语法格式 if 空格 (条件) { 重写模式 } 1: “=”来判断相等, 用于字符串比较 2: “~” 用正则来匹配(此处的正则区分大小写) ~* 不区分大小写的正则 3: -f -d -e来判断是否为文件,为目录,是否存在. 例子:if (!-e $document_root$fastcgi_script_name) { #注: 此处还要加break rewrite ^.*$ /404.html break; }
- set #设置变量
if ($http_user_agent ~* msie) { set $isie 1; } if ($fastcgi_script_name = ie.html) { set $isie 0; } if ($isie = 1) { rewrite ^.*$ ie.html; }
- return #返回状态码
if ($remote_addr = 192.168.1.100) { return 403; }
- break #跳出rewrite
if ($http_user_agent ~ MSIE) { rewrite ^.*$ /ie.htm; #不break会循环重定向 break; }
这篇关于Nginx之http服务器(动静分离)+ rewrite的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享