nginx配置文件详解

使用NGINX+LUA实现WAF功能

那年仲夏 提交于 2019-11-28 19:16:47
使用NGINX+LUA实现WAF功能 一、了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保护的一款产品。 1.2 WAF的功能 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。 支持URL白名单,将不需要过滤的URL进行定义。 支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。 支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。 支持URL参数过滤,原理同上。 支持日志记录,将所有拒绝的操作,记录到日志中去 1.3 WAF的特点 异常检测协议 Web应用防火墙会对HTTP的请求进行异常检测,拒绝不符合HTTP标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些Web应用防火墙还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。 增强的输入验证 增强输入验证

NGINX配置文件详解

拥有回忆 提交于 2019-11-28 06:29:28
worker_cpu_affinity auto; Binds worker processes to the sets of CPUs. worker_rlimit_nofile number; worker进程所能打开的最大文件描述符数量,一般与ulimit -n相同即可 error_log logs/error.log; 存放错误日志路径 pid logs/nginx.pid; pid进程路径 event{ use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能 worker_connections 1024; #单个后台worker process进程的最大并发链接数 accept_mutex off; #当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接,其它的Worker会重新进入休眠状态,这就是「惊群问题」。一般为了吞吐量还是关闭好一点。 multi_accept on; #尽可能多的接受请求,否则一个worker进程只接收一个连接。 }

nginx基础详解

血红的双手。 提交于 2019-11-28 05:44:03
匹配这两种特殊字符“~”或“~*”的区别为:“~”用于区分大小写(大小写敏感)的匹配;“~*”用于不区分大小写的匹配。还可以用逻辑操作符“!”对上面的匹配取反,即“!~”和“!~*”。此外,“^~”的作用是先进行字符串的前缀匹配(必须以后边的字符串开头),如果能匹配到,就不再进行其他location的正则匹配了。 6.5.2 location匹配示例 [root@localhost nginx]# cat /usr/local/nginx/conf/extra/www.conf server { listen 80; server_name www.yunjisuan.com; root /var/www/html/wwwcom; location / { return 401; } location = / { return 402; } location = /images/ { return 501; } location /documents/ { return 403; } location ^~ /images/ { return 404; } location ~* \.(gif|jpg|jpeg)$ { return 500; } } 正则匹配结果如下: [root@localhost nginx]# curl -s -o /dev/null -w "%{http

nginx运行和控制

北城以北 提交于 2019-11-27 22:29:47
1、Nginx命令行参数  Nginxj仅有几个命令行参数,完全通过配置文件来配置    -c </path/to/config> :为Nginx指定一个配置文件,来代替缺省的。 -t :不运行,仅仅测试配置文件。检查配置文件的语法的正确性。 -v:显示nginx的版本。 -V:显示nginx的版本,编译器版本和配置参数。 2、Nginx控制信号 Nginx可以使用信号系统来控制主进程。默认,nginx将主进程的pid写入到/usr/local/nginx/nginx.pid文件中。通过传递参数给./configure或使用pid指令,来改变该文件的位置。 主进程处理的信号:   TERM,INT  快速关闭   QUIT     从容关闭   KILL     杀死影响的进程   HUP      重新配置,用新的配置开始新的工作进程从容关闭旧的工作进程   USR1     重新打开日志文件   USR2     平滑升级可执行程序   WINCH     配合USR2使用,关闭主进程 信号使用方式   kill -信号 `cat /usr/local/nginx/nginx.pid` 详解   1、TERM,INT:nginx的进程马上被关闭,不能完整处理正在使用的nginx的用户的请求,等同于/usr/local/nginx -s stop    eg:kill -TERM

状态码

不羁岁月 提交于 2019-11-27 18:43:45
状态码(重点) 200:正常访问 301:永久重定向 307:内部重定向 客户端报错(nginx/apache) 401:用户名密码认证失败 403:找不到主页,权限不足,selinux没有关 404:找不到页面 后端代码程序,php,java... MySQL ,redis 500:内部错误 502:bad gateway 503:服务器过载 504:请求超时 咱们班总共38人,一人两台设备,访问 www.123.xxx 就会发起10次请求,访问两次 PV:38 * 2 * 2 * 10 UV:38 * 2 IP:1 SOA:松耦合架构 Nginx 两种部署方式: 1)yum安装 更改官方源: [root@web ~]# vim /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1 安装依赖包 yum install -y gcc gcc-c++ autoconf pcre pcre-devel openssl-devel make automake 安装nginx-1.16.0 yum install -y nginx [root@web01 ~]# cd /usr/local/[root

Nginx配置文件nginx.conf中文详解

无人久伴 提交于 2019-11-27 17:24:03
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /var/log/nginx/error.log info; #进程文件 pid /var/run/nginx.pid; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。 worker_rlimit_nofile 65535; #工作模式与连接数上限 events { #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 use epoll; #单个进程最大连接数(最大连接数=连接数*进程数) worker_connections 65535; } #设定http服务器 http { include mime.types;

nginx之主配置文件解读

时光总嘲笑我的痴心妄想 提交于 2019-11-27 16:18:45
主配置文件解读 过滤conf文件的内容 1 grep -v "^#" nginx.conf | grep -v "^$" nginx.conf主配置文件 1 # 工作进程数 根据cpu 查看cpu信息 cat /proc/cpuinfo 或者top 再按下数字1看核数 2 worker_processes 4; 3 # 事件连接数 4 events { 5 worker_connections 1024; 6 } 7 http { 8 # 关键字 9 include mime.types; 10 default_type application/octet-stream; 11 # 定义日志格式化 客服端请求的相关信息 远程ip 用户等等 12 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 13 '$status $body_bytes_sent "$http_referer" ' 14 '"$http_user_agent" "$http_x_forwarded_for"'; 15 # 开启访问日志功能参数 指定日志路径 16 #access_log logs/access.log main; 17 sendfile on; 18 #tcp_nopush on; 19

Nginx入门教程

╄→гoц情女王★ 提交于 2019-11-27 10:22:11
1 Nginx入门教程 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及 搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mail.Ru、 VKontakte,以及 Rambler。据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中有 11.48%使用 Nginx 作为其服务器或者代理服务器。目前互联网主流公司 360、百度、新浪、腾讯、阿里等,目前中国互联网企业 70%以上公司都在使用 nginx 作为自己的 web

nginx+lua+ngx_lua_waf实现waf功能

眉间皱痕 提交于 2019-11-26 18:28:39
用途: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,×××F等web*** 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的*** 屏蔽常见的扫描***工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php执行权限 防止webshell上传 1.下载并解压luajit 2.0.5 wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar -zxvf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make install PREFIX=/data/luajit(选自己的目录) 2.软连接 ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2 3.下载并解压ngx_devel_kit wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz tar -zxvf v0.3.0.tar.gz 4.下载并解压lua-nginx-module wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14rc3.tar.gz tar

Nginx负载均衡

我的未来我决定 提交于 2019-11-25 21:28:31
Nginx负载均衡 配置     首先需要配置定义一个server组:backend,用来表示所有存在的后台服务,然后将所有的流量重定向到http://backend,将这个Nginx示例上的所有流量重定向到定义的backend上,大致内容如下: http { upstream backend { server backend1.example.com; server backend2.example.com; server 192.0.0.1 backup; } server { location / { proxy_pass http://backend; } } }     其中还有很多的细节,比如权重和负载均衡算法,下面的参考链接中已有详细的说明,自行点击查看。 参考链接 NGINX 负载均衡 Nginx配置文件实例及说明 nginx服务器安装及配置文件详解 来源: https://www.cnblogs.com/freedom-only/p/11314474.html