Nginx if 条件判断:

1.公司网站上线有这样的需求:

由于公司网站域名从http到https的转移,在测试阶段需要公司内部进行测试,公司内部局域网访问时强制访问加密的https服务,外部用户访问正常的http服务.

第一种方法:

if ( $http_x_forwarded_for ~ ^106\.38\.53\.130|210\.12\.103\.18) {return 301 https://www.xxx.cn$request_uri;

}#有的说nginx不支持这种if写法,但我在nginx配置后是成功了,可能是版本高了以后,nginx也支持呢。我的nginx是1.8.0版本.

第二种方法:

#用变量的方式来间接实现
set $flag 0;if ( $http_x_forwarded_for ~ ^106\.38\.53\.130|210\.12\.103\.18) {set $flag "${flag}1";
}if ($flag = "01") {return 301 https://www.xxx.cn$request_uri;
}

$remote_addr 为获取客户端访问地址,如果网站使用了前端代理或负载均衡的话使用$http_x_forwarded_for

####################################################################################################

2.当访问某个php应用时,我只想让ip地址为106.38.53.130访问,别的ip都跳转至另一个页面。如下:

#访问/cms/index.php,且ip地址不是106.38.53.130的跳转到https://www.xxoo.cn

set $ssl_80 '';if ( $request_uri ~* /cms/index.php ) {                                        //客户端请求的完整请求路径set $ssl_80 A;}if ( $http_x_forwarded_for !~* ^106\.38\.53\.130.* ) {        //前端有负载均衡的客户端ip地址set $ssl_80 "${ssl_80}B";}#if ( $remote_addr !~* ^10\.105\.99\.158.* ) {                        //客户端ip地址#       set $ssl_80 "${ssl_80}C";#}if ( $ssl_80 = AB ) {#return 403;rewrite ^(.*)$ https://www.xxoo.cn permanent;}

$request_uri是客户端请求的完整路径
$http_user_agent 是用户端发出请求的浏览器参数

$args 请求中的参数值

3.Nginx区分PC或手机访问不同网站

location / {proxy_pass http://10.10.100.60:8183;if ( $http_user_agent ~* "(mobile|nokia|iPhone|ipad|android|samsung|htc|blackberry)" ){rewrite  ^/$    http://www.baidu.com;
                }index index.html index.htm;}

参考文档:

    http://www.360doc.com/content/15/0119/14/15398874_442036739.shtml

    http://www.cnblogs.com/raichen/p/5121262.html

    https://my.oschina.net/boonya/blog/287265

    http://www.nginx.cn/784.html

    https://www.lvtao.net/config/644.html

转载于:https://www.cnblogs.com/saneri/p/6257188.html

Nginx if 条件判断相关推荐

  1. nginx 手机版页面判断_Nginx if 条件判断

    Nginx if 条件判断: 1.公司网站上线有这样的需求: 由于公司网站域名从http到https的转移,在测试阶段需要公司内部进行测试,公司内部局域网访问时强制访问加密的https服务,外部用户访 ...

  2. html if语句多条件,nginx if多条件判断的实现

    if判断本身不支持多条件判断,用不了 && 或者|| 这种逻辑运算,而且if也不支持嵌套. 可以通过set变量来迂回实现. 比如这里我要实现访问a.rootop.org跳转到匹配子域名 ...

  3. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

    24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...

  4. smali to java_Smali —— 数学运算,条件判断,循环

    通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...

  5. 已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。

    已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者. 答案: int max(int a,int b) { return (a+b+abs(a-b))/2; } ...

  6. bash 脚本编程2 条件判断 (笔记)

    条件判断类型: 整数测试 字符测试 文件测试 条件表达式: [ exppression ] ` expression ` test expression 注意一定要加空格前后都要加 整数比较:  -e ...

  7. Python中if条件判断语句怎么用?

    俗话说"不积跬步无以至千里".学习了Python的基本语法后,接下来我们学习Python常的if条件判断语句. if语句是最简单的条件判断语句,它可以控制程序的执行流程,其使用格式 ...

  8. c#switch语句判断成绩_Go的条件判断语句

    现实时间中,我们如果想去购物,可以选择网上或者线下去购物,甚至说,要购买的物品都有许多选择,选价格便宜的,选质量好的,选不用运费等等 那么在计算机语言中,我们要怎么实现现实中,这些选择呢? Go语言支 ...

  9. R语言将多分类数据集转化为二分类数据集,使用条件判断将多分类转化为二分类(transform dataset into a dichotomous factor response dataset)

    R语言将多分类数据集转化为二分类数据集,使用条件判断将多分类转化为二分类(transform dataset into a dichotomous factor response dataset) 目 ...

最新文章

  1. arduino蓝牙通讯代码_「Arduino」OLED屏使用教程,显示内容听谁的?我不管,听我的...
  2. 百度今晨7:20分“宕机”
  3. easyui js拼接html,class属性失效的问题
  4. 用钉钉接收zabbix告警
  5. mariadb 10.2.3支持延时复制
  6. python3num='0123456789,num「:6:-1」=gt; '987'?「1:6:-1」为空
  7. mysql批量写入100万数据_Mysql数据库实践操作之————批量插入数据(100万级别的数据)-阿里云开发者社区...
  8. linux使用命令配置网络,使用nmcli命令配置网络
  9. spring boot错误: 找不到或无法加载主类
  10. 毕设日志——linux服务器anaconda下安装caffe
  11. AppUI自动化中的图像识别的使用
  12. 人工智能的变革趋势: 从弱人工智能到强人工智能,再到生物智能
  13. NC65 通过编码规则生成物料编码
  14. 给浏览器添加油猴插件 and 如何使用
  15. LU分解解线性方程组python实现
  16. 女生转行学习IT技术需要考虑什么
  17. MAC 清除 DNS 缓存
  18. 存在感应雷达模块 毫米波雷达传感器 智能生活技术应用
  19. Spring源码解析二之创建Bean(实例化)
  20. MATLAB数学建模必备算法--层次分析法AHP

热门文章

  1. 有条件截取字符串_Python小课堂之木辛老师特别讲解:再次深入浅出字符串的格式化...
  2. 新晋小白怎样才能做好seo优化
  3. 事务连接中断_漫画——你还记得原生的JDBC怎么连接数据库吗?
  4. 相册权限_苹果手机惊现漏洞?App在未获取相册权限的情况下成功读取照片
  5. 使用机器学习检测TLS 恶意加密流——业界调研***有开源的数据集,包括恶意证书的,以及恶意tls pcap报文***...
  6. Privoxy shadowscocks代理
  7. 美国诚实签经验——着装,戒指,手表装土豪,医生预约单,流水、房产和工作证明...
  8. 自定义实现spark的分区函数
  9. go swagger
  10. k8s object对象(pod controller)介绍