nginx模块--with-http_realip_module

简介: nginx模块--with-http_realip_module

分享下 nginx模块--with-http_realip_module

nginx官网给出的模块解释都是英文
用翻译软件呢,总有误差

这边最近有用到这个模块
给大家分享下

这个模块主要功能就是 在nginx访问日志中去除代理IP,显示客户的真实IP
作用呢,一般就是统计客户地域
还有就是写个统计脚本看有没有流量攻击

首页说下正确用法,看了很多文章,说的其实不对

大家在编译nginx时,加上这个模块
然后nginx.conf中

在这里加上"$http_x_forwarded_for"' 段,获取真实IP用的
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

HTTP模块,重点哦
不要在server中用,要在HTTP区用
这样就是全局使用
1 省事
2 如果配了什么防盗链、附件禁止执行啊什么的,日志显示的会有出入

http {
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
这样,看的明白吧,HTTP区
set行是 你认为是代理IP的IP段,可以写成0.0.0.0/0就是全不信的意思
real_ip_header X-Forwarded-For; 这个是X-Forwarded-For获取的真实IP
real_ip_recursive on; 开启认为set行的都是代理IP
然后 nginx -s reload 就可以了,无需重启

然后呢
大家可以写个定时任务bash脚本
给大家提供个命令

这个命令是看日志中前10访问量最大的IP
grep -v HEAD /opt/logs/access.log | awk '{print $1}' | sort | uniq -c | sort -n -k 1 -r | head -n 10
解释:grep -v HEAD 去除大量网站健康检测请求,不统计这些
awk '{print $1}' 提取第一列,也就是客户真实IP
后面那些都是排版的,随便看看吧
161 203.208.60.21
125 203.208.60.21
111 203.208.60.21
90 203.208.60.21
85 144.48.243.7
84 60.189.207.4
75 203.208.60.21
74 221.194.47.21
68 199.185.0.10
60 202.168.163.14
效果就是这样,前面是次数,后面是真实IP

这个是看所有的状态码,很方便,看看网站有没有报错啊什么的
grep -v HEAD /opt/logs/access.log | awk '{print $9}'| sort | uniq -c | sort -rn
第9列是状态码,就是200 404 302 什么的
2638 200
691 404
1 403
1 304

相关文章
|
1月前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
199 2
|
25天前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
67 1
|
1月前
|
JSON API 数据格式
Python网络编程:HTTP请求(requests模块)
在现代编程中,HTTP请求几乎无处不在。无论是数据抓取、API调用还是与远程服务器进行交互,HTTP请求都是不可或缺的一部分。在Python中,requests模块被广泛认为是发送HTTP请求的最简便和强大的工具之一。本文将详细介绍requests模块的功能,并通过一个综合示例展示其应用。
|
29天前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
1月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
29 3
|
1月前
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
38 2
|
1月前
|
缓存 安全 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
29 1
|
1月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
31 1
|
1月前
|
缓存 应用服务中间件 nginx
[nginx]定制http头信息
[nginx]定制http头信息
|
2月前
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
81 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流