网站首页 > 精选教程 正文
需求:研发提出了一些路由跳跃的要求。
解决问题:在特殊情况下,如果业务和研发无法快速处理,则需要运维快速跳转来解决临时问题并避免出现较大的漏洞。
案例一:
临时将请求路径/colorv1/getcolorv1 的请求转发到 v2,且带着问号后面的参数 :
location ~ ^/(.)/(.)/colorv1/getcolorv1$ {
proxy_pass http://category-color-api/$1/$2/colorv2/getcolorv2?$args;
}
案例二:
任意开头和结尾的uri,重定向至"http://test.jenkins.com/jenkins"
location / {
rewrite ^/(.*)$ http://test.jenkins.com/jenkins;
}
location /jenkins {
proxy_pass http://127.0.0.1:8080/jenkins;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
}
案例三
如果访问的URL以.sh .bash 结尾,返回状态码403
location ~ .*.(sh|bash)?$ {
return 403;
}
案例四
nginx 多判断条件语句如何实现? 比如,同时满足2个条件的请求,才转发。
nginx的配置中不支持if条件的逻辑中包含&& 或 || 的运算 ,而且不支持if的嵌套语法;
否则会报错误:nginx: [emerg] invalid condition; 对此情况我们可以用变量的方式来实现。
如: 请求到/color 的访问,请求方法是post,且refer 为abc.com;返回200:且显示内容{"code": 1, "msg": "发布成功"}, 其他不满足这两个条件的请求,转发到gateway;
location ~ /color$ {
set $post 0; ##定义变量
if ($request_method ~* "POST") {
set $post "${post}1";
}
if ($http_referer ~* "abc.com") {
set $post "${post}2";
}
if ($post = "012") {
return 200 '{"code": 1, "msg": "发布成功"}';
}
proxy_pass http://$gateway/a-b-api$request_uri;
}
案例五
禁止Scrapy等工具和UA为空的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient|^$)) {
return 403;
}
附:nginx配置完成之后,curl常用验证方法
当我们做了一些条件的限制,在本地curl验证通过方可上线:
-H "referer:abc" // 设置referer
-A "okhttp/3.12.0" // 设置请求 http_user_agent
-X POST //请求方法post
-d ‘{}’ //请求参数
curl -H "referer:" -A "okhttp/3.12.0" -X POST -d '{"user": "admin", "passwd":"123456
78"}' http://test.abc.com/1/7.3/color?client=064bfc8ch577e5f6
以上是云网时代小编关于Nginx重写规则的分享,希望能对大家有所帮助,云网时代为大家提供专业的深圳服务器租用,深圳服务器托管,深圳主机租用,云服务器租用等服务器资源,更多详情欢迎访问云网时代官网(www.szicp.com)了解。
猜你喜欢
- 2024-10-06 linux服务器大量的sendmail及postdrop进程故障排查
- 2024-10-06 NGINX常规CORS错误解决方案 nginx error怎么解决
- 2024-10-06 Nginx处理一个http请求需要经过哪11个阶段?
- 2024-10-06 运维必备核心技能-nginx实现web服务配置
- 2024-10-06 Node.js GET/POST请求-Web 模块-Express 框架-教程下载
- 2024-10-06 Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自发布与回退
- 2024-10-06 NGINX 反向代码 CORS nginx反向代理详解
- 2024-10-06 nginx中request_body_size ,body_bytes_sent ,bytes_sent 区别
- 2024-10-06 nginx中日志格式解析 nginx日志影响性能吗
- 2024-10-06 nginx运维小纪 nginx总结
你 发表评论:
欢迎- 最近发表
-
- 我的世界光影MOD下载(我的世界光影mod下载安装)
- 我的世界1.7/1.8VoxelMap小地图MOD下载
- 我的世界1.7.10多世界 整合包(我的世界1.7.10forge整合包)
- 我的世界1.8最好用的修改器下载(我的世界1.8最好用的修改器下载安装)
- 我的世界更多弯曲动作MOD下载(我的世界更多弯曲动作mod下载手机版)
- 我的世界龙珠MOD下载(我的世界龙珠模组整合包下载)
- 我的世界1.7.10以太2 下载(我的世界以太2mod1.12.2)
- 我的世界虚拟人生MOD下载分享(我的世界虚拟人生下载安装)
- 我的世界无正版账号的简单联机方法(非网易版,仅适用于局域网)
- “我的语言极限,即是我的世界的极限。” ——《On Java》书籍推荐
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)