当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪在nginx中实现未备案域名显示400错误的方法      默认情况下,nginx会返回默认页,无法阻断未备案域名的访问。 可以在nginx配置文件中,手动添加一段配置内容,实现未备案域名返回400错误。 例如:   server {         listen  80 default; .........
    ▪nginx使用Limit Requests模块限制单个IP请求速率的方法      Limit Requests模块可以限制单个客户端发送请求的速率。 示例配置如下:   代码示例: http {   limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;   server {       location ~ .*\.(php|php5)?$    .........
    ▪每天自动分割Nginx日志文件的shell脚本      对nginx日志文件进行自动分割,是个不错的主意,这在日常的运行中应当作为一个固定的任务来执行。 本文介绍的方法,把每天的日志文件分割出来,并以时间命名。 首先,创建日志分割脚.........

[1]在nginx中实现未备案域名显示400错误的方法
    来源: 互联网  发布时间: 2013-12-24

默认情况下,nginx会返回默认页,无法阻断未备案域名的访问。
可以在nginx配置文件中,手动添加一段配置内容,实现未备案域名返回400错误。

例如:
 

server {
        listen  80 default;
        server_name _;
        return 400;
}

将以上内容保存为文件:400.conf,然后将此文件include到主配置文件nginx.conf中:
 

include 400.conf;

然后,

nginx -s reload

,重新加载nginx配置文件。

解释:
server_name _; 泛域名配置,即默认情况下,所有域名都返回400报错。
在主配置文件nginx.conf或其它配置文件中已绑定的域名除外。

nginx是个不错的web服务器软件,配置简单,性能卓越,完全可以替代apache。


    
[2]nginx使用Limit Requests模块限制单个IP请求速率的方法
    来源: 互联网  发布时间: 2013-12-24

Limit Requests模块可以限制单个客户端发送请求的速率。

示例配置如下:
 

代码示例:
http {
  limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
  server {
      location ~ .*\.(php|php5)?$
      {
           limit_req   zone=one  burst=5 nodelay;
            fastcgi_pass unix:/tmp/php-cgi-www..sock;
            fastcgi_index index.php;
            include fcgi.conf;
        }
}
 

以上配置,限制单个客户端请求php动态文件的速率是每秒一个请求,峰值是5个请求。

附,nginx利用limit模块设置IP并发防CC攻击

在nginx.conf 中的http字段下面加入:
 

代码示例:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ##平均 1r/s 每秒1个请求

然后,在server下配置的主机定义文档中加入如下一行(全局就加在server下面)
 

代码示例:
limit_req zone=one burst=8;队列模式
limit_req zone=one burst=8 nodelay; ###不用队列 默认的突发(burst是0)

如果只想限制php的请求,加在location中:
 

代码示例:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
limit_req zone=one burst=8 nodelay;

重加载nginx:
nginx -s reload

比如nginx.conf的http段配置:
 

代码示例:
limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;
limit_req zone=req burst=150;

“limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;”
相当于在nginx创建了一个检查站,名字叫req,凡是跟req相关的请求,并限定检查速率是100r/s。
所以当使用“limit_req zone=reqburst=150;”指定某些请求需要经过req时,请求的速率就被限制为100r/s,通过查看日志,可以检测到验证结果。

然后就是burst=150了。这相当于在检查站req旁边放150个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。

因此,burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行100个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

就是这些了,在某些特定的环境或需求中,确实要进行限速或防止CC攻击,希望以上的方法,可以帮助到大家。


    
[3]每天自动分割Nginx日志文件的shell脚本
    来源: 互联网  发布时间: 2013-12-24

对nginx日志文件进行自动分割,是个不错的主意,这在日常的运行中应当作为一个固定的任务来执行。

本文介绍的方法,把每天的日志文件分割出来,并以时间命名。

首先,创建日志分割脚本。

1、登录SSH,创建cut_logs.sh文件
vi /root/cut_logs.sh

内容如下:
 

代码示例:
#!/bin/bash
# The Nginx logs path
logs_path="/var/wwwlogs/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}www..log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/juzihc_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

2、添加cut_logs.sh执行权限
 

代码示例:
chmod +x /root/cut_logs.sh

设置cut_logs.sh启动时间,执行命令crontab -e进入编辑状态:
 

代码示例:
01 00 * * * /root/cut_logs.sh

设置定时任务:每天0点01分启动。

完成以上二步之后,每天定时分割日志文件就设置成功了。
有兴趣的朋友,可以考虑将日志执行tar压缩,还可以在脚本中设置删除多少天前的文件。
这些留给大家自己研究吧。

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
nginx日志配置、Nginx日志分割
Nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3