## 简介
在实际的环境中的多数情况下,我们会使用CDN,真实用户的IP将会被存放在`header`头中,所以我们需要进行特别的配置以获取用户的真实IP地址。
openstar默认是将realip模块([http_realip_module](http://nginx.org/en/docs/http/ngx_http_realip_module.html))编译进去的,所以建议直接配置使用该模块即可。
关于 http_realip_module 的使用可以简单参考一下
```
set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
real_ip_header X-Real-IP;
real_ip_recursive on;
可以配置的位置:http, server, location
根据自己的情况进行配置
```
另外`openstar`安全网关提供的这个realip模块是完全基于lua实现,接下来了解一下该模块是怎么使用的。
## 入口
![](https://img.kancloud.cn/4d/95/4d958b99c67e271c21f5dde0c4a1fb21_944x635.png)
## 主界面
查看现有配置获取用户真实ip的规则
![](https://img.kancloud.cn/1f/d9/1fd9d1d642140c76dd44b9b5a9f7ae40_976x509.png)
如果使用了 nginx 的 realip 模块,就可以将`配置获取用户真实IP` 开关设置为:关闭
* 配置获取用户真实ip开关:该开关是控制是否启用该模块
## 添加:
![](https://img.kancloud.cn/f6/58/f65827d5d75ba02540831028a63a2a7d_755x379.png)
* 域名:配置需要从`header`头中进行获取用户真实ip的域名
该域名一定是完整的域名,不能是正则表达式那种形式的域名!!!
同域名管理中一样的域名才可以
```
www.bac.com #合法
*.bac.com # 不合法
```
* 规则
![](https://img.kancloud.cn/86/af/86af9698786f6df96098403a621f2e54_402x269.png)
第一个参数:匹配的具体内容,可以是字符串、数组、字典
第二个参数:匹配的类型(等于、包含、数组、字典、开头[扩展]列表、结尾[扩展]列表...)
这里匹配符建议只用(等于、数组、字典、ip段)
第三个参数:是否取反的标记(可以省略)
规则 配置是等于xxxx,取反为true,则表示 不等于,以此类推
这里json规则的编写,参考右边的json例子,json配置说明
* ips:配置直连IP信息
等于匹配:当仅仅只有一个来源ip时使用【特殊用法:当需要匹配任意ip时,内容写 * 】
![](https://img.kancloud.cn/f8/b2/f8b2dfc7141b8a79d68bf33ab3001f88_305x186.png)
字典匹配:当有超过500个IP时,使用(复杂度是 1)
![](https://img.kancloud.cn/2b/43/2b43d571660f6da1a2ad1aa6e1efb71e_375x292.png)
数组匹配:当有多个IP匹配时(小于500个)复杂度是 n
![](https://img.kancloud.cn/89/90/89902af13b7dbfbc34a077cbf421ba38_379x270.png)
ip段匹配:匹配的ip是cidr形式
![](https://img.kancloud.cn/b9/68/b9682b57e4bed9bed84479603b3b85dd_365x295.png)
如:192.168.1.2/32 ; 192.168.1.0/24 ...
* realipfrom:http头名称
这里需要注意的是,不区分大小写,header头中的 **横线 要换成 下划线**
常见存放IP的头:`X-Real-IP` `X-Forwarded-For` ,配置就可以是:`x_real_ip`和`x_forwarded_for`(可以不分大小写的)
注:当需要`nginx`支持下划线的`header`头时,需要配置 `underscores_in_headers on;`
http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
## 删除:
删除该条配置,立刻生效
## 编辑:
同 添加一样 ,对规则进行 编辑修改修改
## 保存:
保存该模块规则到服务器json配置文件(防止重启后配置丢失)
注:Slave 会自动保存配置到json文件!!!
- kcon 兵器谱
- 演示 1
- 演示 2
- 演示 3
- 演示 4
- 演示 5
- 前言
- 安装
- 更新
- 登录后台
- 授权认证
- 集群配置
- 7层防护 -- 最佳实践
- 匹配位置说明
- 匹配方式说明
- 规则匹配详解
- 全局 - CDN规则
- 添加header头配置
- 限速limit配置
- 缓存proxy_cache配置
- 清除缓存
- 全局 - 获取真实IP配置
- 全局 - IP黑白名单
- 全局 - 域名方法配置(白名单)
- 全局 - 跳转规则配置
- 全局 - 高级规则配置
- 全局 - 普通规则配置
- 全局 - 频率规则配置
- 全局 - 内容替换规则
- 内容替换规则(插件使用)
- 全局 - 拦截信息配置
- 全局 - LOG规则配置
- 平台配置
- 基本配置
- 高级配置
- 配置文件管理
- 4 层代理
- 转发配置
- 插件管理
- 防护配置
- 网站管理
- 证书管理
- 域名管理
- 网站规则
- 插件管理
- 插件操作 --- 基本使用
- 插件操作 --- 手机号脱敏插件
- 归档
- 更新日志
- 视频教程目录