Nginx服务之解决方案

纸上得来终觉浅,绝知此事要躬行。

Nginx服务之解决方案
# 获取帮助信息
$ nginx -h
nginx version: nginx/1.18.0 (Ubuntu)
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/share/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

1. 值得一说的就是 -s(发送信号)/-g(从配置文件中设置全局指令) 参数
stop: 快速停止nginx服务
quit: 完整有序的停止nginx服务
reopen: 重新打开日志文件(日志文件mv等操作后会重新生成)
reload: 修改配置后重新加载生效

1. 简述reload命令的执行步骤
1. master进程检查配置文件的正确性,若错误则返回错误信息并终止(采用原配置文件继续工作;因为worker并未受到影响),若正常则继续后续步骤。
2. 用新的配置文件,启动新的worker进程。
3. nginx将新的请求,分配新的worker进程。
4. 等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程。
5. 重复上面过程,知道全部旧的worker进程都被关闭掉。

1. 缓解 DDoS 的攻击

分布式拒绝服务(DDoS)攻击是一种试图使服务(通常是网站服务)无法正常使用,通过多台机器同时对目标产生大量流量从而使其服务器因为资源耗尽而无法正常提供服务。通常,攻击者试图同目标系统建立大量连接和发送大量连接请求,使其无法在接受新的连接或者响应速度变的非常缓慢严重影响使用。

Nginx服务之解决方案 - 缓解 DDoS 的攻击

1.1 攻击特征

这里说明的是,应用层(DDos)的攻击特征

应用层(通常为第7层的HTTP服务)的DDoS攻击是由软件程序发动的,并且可以根据具体的系统漏洞发动最佳的攻击。例如,对于无法处理大量并发连接的系统,只需要建立大量的连接并定期发送少量流量保持连接的存活,这样就可以耗尽系统的资源。其他的攻击都可以通过发送大量或超大量的请求来完成。因为发动这些攻击不是真实用户而是机器人,所以攻击者可以很轻松的产生大量的连接并非常快速的发送连接请求。

  1. 流量通常来源于一组用于攻击的IP地址,其结果就是每一个IP地址都请求建立大量远超正常用户的需求连接。
  2. 因为流量是由机器人产生的,且其目标就是让服务器瘫痪,所以产生流量的速度远超正常用户可能产生的速度。
  3. 通常头部User-Agent字段通常为非标准值。
  4. 通常头部Referer字段有时会设置为与攻击相关的值。