首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
45
篇与
的结果
2023-12-29
如何使用Nginx实现限制各种恶意访问
如何使用Nginx实现限制各种恶意访问恶意访问是指某些攻击者针对某个网站或网络服务进行的一系列攻击,以获得非法的访问或攻击目标服务器,从而影响其正常运行。为了保护我们的服务器网络安全,我们需要限制这些恶意访问。Nginx 是一款优秀的开源 Web 服务器,它能够通过灵活的配置来防止各种恶意访问,下面将详细介绍如何使用 Nginx 实现限制各种恶意访问。使用 Nginx 限制 IP1. 配置 IP 黑名单可以在 Nginx 的配置文件中添加 IP 黑名单,以限制恶意访问。打开 Nginx 配置文件(/etc/nginx/nginx.conf),在 http 部分添加以下代码:http { ... # black list geo $not_allowed_ip { default 0; include /etc/nginx/not_allowed_ip.txt; } ... }以上代码中,我们定义了一个名为“$not_allowed_ip”的变量,并通过“geo”指令配置它的默认值和变量所需的文件路径。其中,“include”指令在“not_allowed_ip.txt”中包含要禁止的 IP 列表。2. 编辑 IP 黑名单文件在 Nginx 的配置文件中已经包含了 IP 黑名单,现在需要编辑“not_allowed_ip.txt”文件,以添加要限制的 IP 地址。可以使用以下命令打开该文件:sudo nano /etc/nginx/not_allowed_ip.txt然后,将要限制的 IP 地址添加到文件中,并以分号(;)分隔多个 IP 地址。例如:192.168.0.1; 192.168.0.2;编辑完成后,保存文件并关闭编辑器。3. 添加 IP 限制规则在 Nginx 的配置文件中,可以通过“if”指令添加 IP 限制规则。打开配置文件,添加以下代码:http { ... server { ... # access control list if ($not_allowed_ip) { return 403; } ... } ... }以上代码中,我们在“http”块内添加了一个名为“server”的块,并在其中使用“if”指令限制了 IP。如果来自于“$not_allowed_ip”的 IP 访问了该服务器,就会返回 403 错误。4. 重新加载 Nginx在保存 Nginx 配置文件之后,需要重新加载 Nginx,以使其对新配置文件生效。可以使用以下命令重新加载 Nginx:sudo systemctl reload nginx这就是如何使用 Nginx 来限制 IP 的方法。使用 Nginx 防御 DDoS 攻击1. 配置限制并发连接数您可以通过以下配置来限制来自单个 IP 的并发连接数:http { ... limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; ... server { ... limit_conn conn_limit_per_ip 10; ... } ... }以上代码中,我们定义了一个名为“$binary_remote_addr”的变量,以保存远程 IP的二进制表示。使用“limit_conn_zone”指令,定义了一个名为“conn_limit_per_ip”的限制连接数的共享内存区域,其大小为10M。最后,使用“limit_conn”指令在“server”块内定义了连接限制规则。2. 配置请求速率限制您可以通过以下配置来限制每个 IP 的请求速率:http { ... limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s; ... server { ... limit_req zone=req_limit_per_ip burst=10 nodelay; ... } ... }以上代码中,我们定义了一个名为“req_limit_per_ip”的请求数速率限制共享内存区域,其大小为10M,速率为每秒1个请求。“limit_req”指令已在“server”块内定义,将请求速率限制为10次每秒,而没有延迟。3. 配置 Body Size 限制如果您想要限制上传的文件大小,则可以使用“client_max_body_size”指令:http { ... # limit body size client_max_body_size 10m; ... }以上代码中,我们使用“client_max_body_size”指令限制了上传的文件最大大小,为10M。使用 Nginx 防御 SQL 注入和 XSS 攻击1. 配置防止 SQL 注入使用 Nginx 防止 SQL 注入攻击的方法之一是禁止某些字符或字符串。可以在 Nginx 的配置文件中添加以下代码:http { ... server { ... if ($query_string ~ "union.*select.*\(") { return 403; } if ($query_string ~ "cookies|document|base64") { return 403; } ... } ... }以上代码中,我们使用两个“if”指令,用于检测 query_string 是否包含一些关键字,如“union”、“select”和“cookies”等。如果其中任何一个条件得到满足,就会返回 403 错误,并禁止访问该请求。2. 配置防止 XSS 攻击您可以使用以下 Nginx 配置代码来防止 XSS 攻击:http { ... server { ... add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Frame-Options "SAMEORIGIN"; ... } ... }以上代码中,我们使用“add_header”指令配置了三个 header。这三个 header 分别为:X-Content-Type-Options:将值设置为“nosniff”,禁止浏览器读取匹配响应各种可能的 MIME 类型的响应数据。X-XSS-Protection:将值设置为“1; mode=block”,启用 XSS 保护,并向浏览器发送阻止呈现页面的指令。X-Frame-Options:将值设置为“SAMEORIGIN”,限制页面嵌入到同源或空源网页中。以上就是使用 Nginx 防御 SQL 注入和 XSS 攻击的方法。总结本文讲解了如何使用 Nginx 实现限制各种恶意访问攻击,包括限制 IP、防御 DDoS 攻击、防御 SQL 注入和 XSS 攻击等。通过实现这些安全性措施,可以帮助您的 Web 服务更加安全,避免被网络攻击者攻击。希望本文能够对您有所帮助。拓展Nginx如何通过使用应用程序防火墙模块( WAF)防范Web攻击
2023年12月29日
10 阅读
0 评论
0 点赞
2023-12-29
nginx几个安全配置及说明
nginx几个安全配置及说明随着互联网的发展,web服务器已经成为多数网站架构中不可或缺的组件。而nginx作为一款高性能的Web服务器,在不同规模的网站中得到广泛的应用。然而,在使用nginx时,安全配置也是一项重要的任务,以保护网站不受攻击和恶意请求的影响。在本文中,我们将探讨nginx安全配置及其代码和详细注释。一、限制请求速率攻击者可以通过发送大量请求来占用服务器资源,导致服务器变慢或甚至崩溃。为了限制请求速率,需要使用nginx模块中的“limit_req”和“limit_conn”。“limit_req”模块可以控制请求的速率,可以指定单位时间内服务器所能接收的请求数。例如,每秒钟只允许接收30个请求,“burst”参数指定的是瞬时请求数的最大数量:http{ limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m; server{ location /{ limit_req zone=one burst=5 nodelay; //其他配置 } } }说明:limit_req_zone:定义限制请求的区域,指定IP地址种类为binary_remote_addr,分配10M存储空间,速率为30个请求/分钟。limit_req:将请求限制到特定的“zone”中,当瞬间请求数超过“burst”参数所指定的数量时,该请求将被拒绝。nodelay选项表示拒绝请求,并向客户端返回503状态码。“limit_conn”则可以限制连接的数量,在高并发请求时,防止服务器在处理过多请求时出现响应缓慢或崩溃的情况。http{ limit_conn_zone $binary_remote_addr zone=addr:10m; server{ location /{ limit_conn addr 10; //其他配置 } } }说明:limit_conn_zone:定义限制请求连接数的区域,同样是指定IP地址种类为binary_remote_addr,分配10M存储空间。limit_conn:将连接限制到特定的“zone”中,连接数超过10个时,后续连接将被拒绝。二、禁止访问某些目录和文件网站中有一些目录或文件是不应该被公开访问的,如网站根目录下的配置文件、数据文件等。为了保护这些文件,需要在nginx配置文件中进行设置。http{ server { location ~ /\.{ deny all; } location ~* ^/(dir1|dir2|dir3)/ { deny all; return 404; } } }说明:location ~ /.{}:使用正则表达式匹配所有以“.”开头的文件或目录,并拒绝所有对它们的请求。location ~* ^/(dir1|dir2|dir3)/{}:匹配所有以“/dir1”、“/dir2”和“/dir3”开头的URL,并拒绝它们的请求。三、防止DDoS攻击DDoS攻击 是一种特别恶劣的攻击形式,它的目的是 利用大量的请求将服务器压垮 。为了保护服务器不受此类攻击,需要 使用一些nginx模块 ,例如 “http_limit_conn_module”和“http_limit_req_module”。http{ limit_conn_zone $binary_remote_addr zone=conn_limit:10m; limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; server { location / { limit_conn conn_limit 10; limit_req zone=req_limit burst=20; //其他配置 } } }说明:limit_conn_zone:同样是定义限制请求连接数的区域,分配10M存储空间。limit_req_zone:同样是定义限制请求的区域,指定IP地址种类为binary_remote_addr,分配10M存储空间,速率为10个请求/秒。limit_conn和limit_req:限制连接和请求速率,连接和请求速率超过定义值时,请求被拒绝。四、启用HTTPS并加强SSL/TLS安全为了保护数据在传输过程中的安全,很多网站都启用HTTPS协议,并加强SSL/TLS安全。nginx可以使用“SSL/TLS Offloading”技术来实现HTTPS和SSL/TLS加密。http{ server { listen 80; listen [::]:80; server_name example.com www.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/ssl/example.com/fullchain.pem; ssl_certificate_key /etc/ssl/example.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:EECDH+AESGCM:EECDH+CHACHA20:EECDH+AES128:EDH+AESGCM:EDH+CHACHA20:EDH+AES128:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!MD5:!EXP:!PSK:!DSS:!SRP:!kECDH:!CAMELLIA:!SEED:!IDEA:!3DES'; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000" always; add_header X-Content-Type-Options "nosniff" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Frame-Options "SAMEORIGIN" always; //其他配置 } }说明:listen 443 ssl http2:在443端口上开启HTTPS,并启用HTTP/2协议。ssl_certificate和ssl_certificate_key:分别指定SSL/TLS数字证书的公钥和私钥文件路径。ssl_session_timeout:指定SSL/TLS会话超时时间。ssl_session_cache shared:SSL:50m:缓存一定数量的SSL/TLS会话,提高SSL/TLS重复访问的性能。ssl_session_tickets off:禁用会话票据,防止攻击者使用重用的会话ID来危害安全。ssl_dhparam:指定Diffie-Hellman参数,增强密钥交换的安全性,减少暴力破解的风险。ssl_protocols:指定使用的SSL/TLS协议版本。ssl_ciphers:指定启用的TLS加密算法。add_header:添加响应头,增强安全性,如HSTS、X-XSS-Protection、X-Content-Type-Options和X-Frame-Options。总结对于nginx安全配置,限制请求速率、禁止访问某些目录和文件、防止DDoS攻击和加强SSL/TLS安全等措施都是必要的。加强nginx的安全性可以有效防止各种攻击、保护网站的机密信息和用户信息,同时也增强了服务器系统的稳定性和系统运行效率。因此,建议在实践中将nginx安全性的措施落实在实际应用过程中。
2023年12月29日
14 阅读
0 评论
0 点赞
2023-12-29
linux不可不知的几个常用命令
linux不可不知的几个常用命令cd:进入目录,并切换当前工作目录示例:cd /var/www/html进入/var/www/html目录ls:列出当前目录下的文件和目录示例:ls /var/www/html列出/var/www/html目录下的文件和目录touch:创建空文件示例:touch test.php创建一个名为test.php的空文件mkdir:创建一个新目录示例:mkdir images创建一个名为images的新目录cp:复制文件或目录示例:cp index.php /var/www/html将index.php文件复制到/var/www/html目录下mv:移动文件或目录示例:mv index.php /var/www/html将index.php文件移动到/var/www/html目录下rm:删除一个文件或目录示例:rm index.php删除名为index.php的文件chmod:更改文件或目录的权限示例:chmod 755 index.php将index.php文件的权限更改为755chown:更改文件或目录的所有者示例:chown www-data:www-data index.php将index.php文件的所有者更改为www-data用户和www-data组ps:查看当前正在运行的进程示例:ps aux列出当前所有进程的详细信息top:实时查看系统的进程状态和资源占用情况示例:top实时查看系统进程和资源占用情况tar:打包和压缩文件或目录示例:tar -czvf backup.tar.gz /var/www/html将/var/www/html目录打包并压缩为backup.tar.gz文件grep:搜索文件中匹配的字符串示例:grep "hello" test.txt在test.txt文件中搜索包含"hello"的字符串sed:编辑文本文件并执行替换、删除和插入等操作示例:sed 's/hello/world/g' test.txt将test.txt文件中所有出现的"hello"替换为"world"find:查找文件或目录示例:find /var/www/html -name "*.php"在/var/www/html目录下查找所有以.php结尾的文件ssh:连接远程服务器示例:ssh user@10.0.0.1使用用户名user连接到IP地址为10.0.0.1的远程服务器scp:从本地主机复制文件到远程主机或从远程主机复制文件到本地主机示例:scp local_file remote_user@remote_host:/remote/dir将本地文件复制到远程主机的/remote/dir目录ping:测试服务器的连通性示例:ping google.com测试连接到google.com的响应时间和连通性netstat:显示当前网络连接、开放端口和正在进行的进程示例:netstat -an列出所有网络连接和开放端口ifconfig:显示网络接口的配置信息示例:ifconfig eth0列出名为eth0的网络接口的配置信息
2023年12月29日
16 阅读
0 评论
0 点赞
2023-12-28
linux小白也能实现nginx日志按天优化!
linux小白也能实现nginx日志按天优化!前言:接着上一篇文章《记一次nginx拦截爬虫》,发现服务器nginx日志非常不好看,时间长了一大堆都在一个文件里边(甚至几年的),对于我这种linux小白就不友好了,所以想把日志分文件,这样至少我们去查看日志的时候会方便很多:按天分文件直接上nginx.conf配置user nginx;worker_processes 2;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events {worker_connections 1024;}http {include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time'; #引入time_iso8601模块 设置时间 日期变量 map $time_iso8601 $logdate { #'~^(?<ymdh>\d{4}-\d{2}-\d{2}T\d{2})' $ymdh; '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd; default 'date-not-found'; } #日志存放目录 access_log /var/log/nginx/access-$logdate.log main; #日志缓存,将多个日志进行积累,达到一定量级后写入到磁盘,可以减少磁盘旋转,从而降低磁盘i/o,提升nginx能效 open_log_file_cache max=10; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; #隐藏http版本号 server_tokens off;}这样就会按照天生成日志文件;这里边最重要的就是引入$time_iso8601(这个是nginx里边自带的一个时间格式)进行自定义变量,不需要额按编译。日期格式优化nginx自带两种时间格式:$time_iso8601 形如 2023-03-29T16:58:49+08:00$time_local 形如 14/Nov/2022:08:28:14 +0000可以看出$time_local的格式看起来不是很美妙,对于我自己来说肯定按照 ‘年月日时分秒’ 这样看更顺眼一些,所以我们在自定义日志格式的时候,时间格式也是选择的是$time_iso8601。时间怎么和我们本地时间一致时间格式顺眼了,但是发现时间还是UTC时区的时间,怎么处理呢:我这边使用的是docker-compose,可以直接配置环境变量。version: '3'services: d_nginx:container_name: c_nginx environment: TZ: 'Asia/Shanghai'第二种就是Dockerfile中编译,一劳永逸。FROM nginx:1.20.1-alpine定义时区参数ENV TZ=Asia/Shanghai有一些低版本的nginx做了以上两步还是不得行,有可能是因为缺少了tzdata时区数据包。FROM nginx:1.12.1-alpine将alpine的源更换成阿里云的源RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories定义时区参数ENV TZ=Asia/Shanghai安装时区数据包RUN apk add --update tzdata设置时区RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone经过上边的步骤nginx日志里边的格式和时间应该就是我自己想要的了。给大家分享一个nginx日志分析工具goaccess:地址:https://github.com/allinurl/goaccessgoaccess nginx.log -a > nginx.html这个工具能方便快速的分析nginx日志,能可视化的展示很多信息,帮助我们快速定位问题;比如接口的调用量(具体到某一个接口),访问者数量等等。前言:接着上一篇文章《记一次nginx拦截爬虫》,发现服务器nginx日志非常不好看,时间长了一大堆都在一个文件里边(甚至几年的),对于我这种linux小白就不友好了,所以想把日志分文件,这样至少我们去查看日志的时候会方便很多:按天分文件直接上nginx.conf配置user nginx;worker_processes 2;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events {worker_connections 1024;}http {include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time'; #引入time_iso8601模块 设置时间 日期变量 map $time_iso8601 $logdate { #'~^(?<ymdh>\d{4}-\d{2}-\d{2}T\d{2})' $ymdh; '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd; default 'date-not-found'; } #日志存放目录 access_log /var/log/nginx/access-$logdate.log main; #日志缓存,将多个日志进行积累,达到一定量级后写入到磁盘,可以减少磁盘旋转,从而降低磁盘i/o,提升nginx能效 open_log_file_cache max=10; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; #隐藏http版本号 server_tokens off;}这样就会按照天生成日志文件;这里边最重要的就是引入$time_iso8601(这个是nginx里边自带的一个时间格式)进行自定义变量,不需要额按编译。日期格式优化nginx自带两种时间格式:$time_iso8601 形如 2023-03-29T16:58:49+08:00$time_local 形如 14/Nov/2022:08:28:14 +0000可以看出$time_local的格式看起来不是很美妙,对于我自己来说肯定按照 ‘年月日时分秒’ 这样看更顺眼一些,所以我们在自定义日志格式的时候,时间格式也是选择的是$time_iso8601。时间怎么和我们本地时间一致时间格式顺眼了,但是发现时间还是UTC时区的时间,怎么处理呢:我这边使用的是docker-compose,可以直接配置环境变量。version: '3'services: d_nginx:container_name: c_nginx environment: TZ: 'Asia/Shanghai'第二种就是Dockerfile中编译,一劳永逸。FROM nginx:1.20.1-alpine定义时区参数ENV TZ=Asia/Shanghai有一些低版本的nginx做了以上两步还是不得行,有可能是因为缺少了tzdata时区数据包。FROM nginx:1.12.1-alpine将alpine的源更换成阿里云的源RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories定义时区参数ENV TZ=Asia/Shanghai安装时区数据包RUN apk add --update tzdata设置时区RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone经过上边的步骤nginx日志里边的格式和时间应该就是我自己想要的了。给大家分享一个nginx日志分析工具goaccess:地址:https://github.com/allinurl/goaccessgoaccess nginx.log -a > nginx.html这个工具能方便快速的分析nginx日志,能可视化的展示很多信息,帮助我们快速定位问题;比如接口的调用量(具体到某一个接口),访问者数量等等。
2023年12月28日
13 阅读
0 评论
0 点赞
2023-12-28
内存飙升!记一次Nginx拦截爬虫
内存飙升!记一次Nginx拦截爬虫前言:最近发现服务器在某个时间段,内存疯狂飙升,开始还以为是正常的业务造成的,升级服务器内存,发现还是没有解决问题;(这里自己偷懒了,一开始没有找到问题,默认为就是业务量上来了)马上查看 nginx 日志,发现了一些不同寻常的请求:这是什么玩意,怀揣着好奇心马上去搜索了一下,结果:好家伙,差点没把我服务器送回家;赶紧解决:nginx 层面解决发现虽然是爬虫,但是并没有伪装,每个请求里边都带了 user-agent,而且都是一样的,那就好解决了,直接上代码:(我这里适用的是 docker)1、docker-composeversion: '3'services: d_nginx:container_name: c_nginx env_file: - ./env_files/nginx-web.env image: nginx:1.20.1-alpine ports: - '80:80' - '81:81' - '443:443' links: - d_php volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/deny-agent.conf:/etc/nginx/agent-deny.conf - ./nginx/certs:/etc/nginx/certs - ./nginx/logs:/var/log/nginx/ - ./www:/var/www/html2、目录结构nginx-----nginx.conf-----agent-deny.conf-----conf----------xxxx01_server.conf----------xxxx02_server.conf3、agent-deny.confif ($http_user_agent ~* (Scrapy|AhrefsBot)) {return 404;}if ($http_user_agent ~ "Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)|^$" ) {return 403;}4、然后在每个 service 里边 include 这个 agent-deny.confserver {include /etc/nginx/agent-deny.conf; listen 80; server_name localhost; client_max_body_size 100M; root /var/www/html/xxxxx/public; index index.php; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #客户端允许上传文件大小 client_max_body_size 300M; #客户端缓冲区大小,设置过小,nginx就不会在内存里边处理,将生成临时文件,增加IO #默认情况下,该指令,32位系统设置一个8k缓冲区,64位系统设置一个16k缓冲区 #client_body_buffer_size 5M; #发现设置改参数后,服务器内存跳动的幅度比较大,因为你不能控制客户端上传,决定不设置改参数 #此指令禁用NGINX缓冲区并将请求体存储在临时文件中。文件包含纯文本数据。该指令在NGINX配置的http,server和location区块使用 #可选值有: #off:该值将禁用文件写入 #clean:请求body将被写入文件。该文件将在处理请求后删除 #on: 请求正文将被写入文件。处理请求后,将不会删除该文件 client_body_in_file_only clean; #客户端请求超时时间 client_body_timeout 600s; location /locales { break; } location / { #禁止get请求下载.htaccess文件 if ($request_uri = '/.htaccess') { return 404; } #禁止get请求下载.gitignore文件 if ($request_uri = '/storage/.gitignore') { return 404; } #禁止get下载web.config文件 if ($request_uri = '/web.config') { return 404; } try_files $uri $uri/ /index.php?$query_string; } location /oauth/token { #禁止get请求访问 /oauth/token if ($request_method = 'GET') { return 404; } try_files $uri $uri/ /index.php?$query_string; } location /other/de { proxy_pass http://127.0.0.1/oauth/; rewrite ^/other/de(.*)$ https://www.baidu.com permanent; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass d_php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; include fastcgi_params; #add_header 'Access-Control-Allow-Origin' '*'; #add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; #add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,token'; }}这样每个请求里边都会拦截这个 AhrefsBot 了。阿里云安全组拦截分析日志还发现,其实请求的 IP 就那么几个段,那么为了多重保证(阿里云这个是见效最快,效果最好的,付费的就是不一样)ip 段:54.36.0.051.222.0.0195.154.0.0直接外网入方向
2023年12月28日
7 阅读
0 评论
0 点赞
1
...
4
5
6
...
9