当前位置:首页 > 教程 > 正文内容

nginx过滤域名(nginx waf 过滤规则)

2023-05-20 20:30:04教程1

nginx waf 过滤规则

每一项的具体含义如下所示:

attacklog = "on" --是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)

logdir = "/www/wwwlogs/waf/" --攻击日志文件存放目录(一般无需修改)

UrlDeny="on" --是否开启恶意 url 拦截

Redirect="on" --拦截后是否重定向

CookieMatch="off" --是否开启恶意 Cookie 拦截

postMatch="off" --是否开启 POST 攻击拦截

whiteModule="on" --是否开启 url 白名单

black_fileExt={"php","jsp"} --文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名3"……}

ipWhitelist={"1.0.0.1"} --白名单 IP,如有多个则用英文逗号分隔。

如:{"1.0.0.1","1.0.0.2","1.0.0.3"……} 下同

ipBlocklist={"1.0.0.1"} --黑名单 IP

CCDeny="off" --是否开启 CC 攻击拦截

CCrate="300/60" --CC 攻击拦截阈值,单位为秒。

"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑

配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。

打开这个文件夹,可以看到里面有一些无后缀名的规则文件

其中每一个文件的作用如下:

args --GET 参数拦截规则

blockip --无作用

cookie --Cookie 拦截规则

denycc --无作用

post --POST 参数拦截规则

returnhtml --被拦截后的提示页面(HTML)

url --url 拦截规则

user-agent --UA 拦截规则

whiteip --无作用

whiteurl --白名单网址

nginx过滤静态资源

好,nginx就是可以用来配置静态页面的,但是需要注意 如果想要根目录也自主选择 需要把 #index 这里注释,如果只是想要访问里面的目录可以不必要注释, 如果不开启这个选项 去访问里面的目录会报错403

nginx 过滤ip

Linux Virtual Server(LVS)是一个开源的高可用性的负载均衡器,可以将多个服务器组合成一个虚拟服务器群,从而实现负载均衡和故障切换。Nginx是一个性能优异的Web服务器和反向代理服务器,可以用于提供HTTP、HTTPS和SMTP等服务。

要通过LVS来扩展多个Nginx,可以按照以下步骤进行配置:

在LVS服务器上安装和配置LVS软件。LVS有多种工作模式,例如NAT、DR和TUN等,您可以根据实际需求选择合适的模式。在配置LVS时,需要指定转发规则和实际服务器的IP地址和端口号。

将多个Nginx服务器添加到实际服务器池中。在LVS服务器上,您需要指定每个实际服务器的IP地址和端口号,并通过LVS软件将请求转发到这些服务器。

在每个Nginx服务器上,配置反向代理服务。在Nginx配置文件中,您需要指定被代理的应用程序服务器的IP地址和端口号,并配置反向代理规则。

确保所有Nginx服务器上的应用程序具有相同的配置。为了使所有Nginx服务器提供相同的服务,您需要确保它们上面的应用程序具有相同的配置和数据。这通常可以通过使用分布式文件系统或基于Git的配置管理工具来实现。

通过上述步骤,您可以使用LVS和Nginx来扩展多个Web服务器,并提供高可用性和负载均衡的服务。同时,您还需要确保每个Nginx服务器上的应用程序具有相同的配置,并保持同步更新,以确保整个系统的稳定性和一致性。

nginx过滤header

获取url参数

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容。

在 nginx配置中,通过$arg_PARAMETER 即可获得GET参数PARAMETER的内容。

获取请求头

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。

在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。

通过以下方式进行验证,比如说,通过 http://www.test.com?name=hello&id=123 来验证url的请求参数,能够在nginx中获取到,只需要修改nginx.conf 配置文件如下,就可以在access.log中看到id和name在log中

http {

include mime.types;

default_type application/octet-stream;

log_format main '{ "@timestamp": "$time_iso8601", '

'"servername": "$http_host", '

'"id": "$arg_id",'

'"name": "$arg_name",'

'"remote_addr": "$remote_addr",'

'"referer": "$http_referer",'

'"request": "$request",'

'"request_time": "$request_time",'

'"status": $status,'

'"bytes":$body_bytes_sent,'

'"agent": "$http_user_agent",'

'"x_forwarded": "$http_x_forwarded_for",'

'"upstr_addr": "$upstream_addr",'

'"upstr_host": "$upstream_http_host",'

'"ups_resp_time": "$upstream_response_time" }';

access_log logs/access.log main;

server_names_hash_bucket_size 128;

nginx过滤请求不过滤参数

在nginx设置里面打开拦截器,设置黑名单用于过滤。

nginx 拦截域名

我的回答:这个需要修改Nginx的配置文件nginx.conf。

在配置文件中,index里面指定默认访问页面index.htm,可以直接替换即可。

nginx过滤特殊字符

回答本行业问题

Linux下服务一般是通过shell脚本来启动程序或者服务,在shell脚本启动时,可以使用命令来查询,本服务或程序端口是否被其他程序占用,可以使用netstat命令。

netstat

比如我们查询80端口是否被占用,命令如下:

[root@api ~]# netstat -anp|grep 80

从上面可以看出80端口已经被nginx监听。

netstat具体的参数如下,【-a】显示所有的socket连接,【-n】不使用域名,而使用ip显示,【-p】显示监听此socket的进程名称,【grep】是过滤包含80字符的匹配项。

简单函数封装

我们在写脚本时尽量将经常使用的脚本封装成函数,以便其他程序也可以调用这个函数,如下面的脚本,实现端口的查询函数【入参1=端口】:

我们用几个端口测试一下,可以看出上面我的端口被nginx占用

良好的编写代码习惯

在linux编程写程序时,尽量不要将监听的端口、IP、网卡接口等可能会发生变化的参数,写死到代码中,可以定义一个配置文件,把经常变化的参数写入配置文件,在程序启动或者调用时,加载配置文件来读取参数。

以上回答希望能够帮助到你。

nginx过滤url请求

第一种:Nginx自己的错误页面

Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?

看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

}

# 定义错误页面码,如果出现相应的错误页面码,转发到那里。

error_page 404 403 500 502 503 504 /404.html;

# 承接上面的location。

location = /404.html {

# 放错误页面的目录路径。

root /usr/share/nginx/html;

}

}

第二种:反向代理的错误页面

如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

upstream www {

server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .* http://www.test.com/index.html redirect;

}

# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass http://www;

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

}

第三种:Nginx解析php代码的错误页面

如果后端是php解析的,需要加一个变量

在http段中加一个变量

fastcgi_intercept_errors on就可以了。

指定一个错误页面:

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

指定一个url地址:

error_page 404 /404.html;

error_page 404 = http://www.test.com/error.html;

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98853331.html