nginx安全优化相关

01. 隐藏 nginx 版本信息

修改nginx主配置文件实现优化
在http模块下添加server_tokens off;

02. 修改 nginx 版本信息

修改版本信息需要编译安装 修改nginx源码包的配置文件
nginx-xxx/src/core/nginx.h
nginx-xxx /src/http/ngx_http_header_filter_module.c
nginx-xxx /src/http/ngx_http_special_response.c

修改 /src/core/nginx.h

# define NGINX_VERSION "8.0.12"

# define NGINX_VER "tomcat/" NGINX_VERSION

修改 /src/http/ngx_http_header_filter_module.c

第 49 行

static u_char ngx_http_server_string[] = "Server: tomcat" CRLF;

修改 /src/http/ngx_http_special_response.c

36 行
"


tomcat
" CRLF

03. 修改 nginx 服务 work_processes 进程默认用户信息

  1. 修改主配置文件参数实现 修改nginx默认用户

  2. 采用编译安装方式实现修改默认用户
    编译安装时添加参数
    configure user www
    指定默认用户为www

04. 优化 nginx 服务上传文件限制大小

修改nginx主配置文件 设置客户端请求报文主体最大尺寸

client_max_body_size # 指定用户上传文件最大体量

特殊环境配置 需要上传大文件场景

client_header_buffer_size 204800k;

large_client_header_buffers 4 10240k;

client_max_body_size 204800k;

http模块添加
client_max_body_size 10m;# 文件大小限制,默认1m

05. nginx 服务图片等信息防盗链解决办法

根据HTTP referers实现防盗链
Nginx图片及目录防盗链解决方案

用户从哪里跳转过来的(通过域名)referers 控制
根据cookie防盗链
通过加密变换访问路径实现防盗链
在产品设计上解决盗链方案
参考文献:
https://blog.csdn.net/Freshair_x/article/details/80531536

06. nginx 站点目录文件及目录权限优化

只将用户上传数据的目录设置为755,用户和组使用nginx
其余目录和文件为755/644,用户和组使用root

07. 利用 nginx 限制访问请求

利用 $request_method 限制请求方法

08. nginx 放爬虫优化

  1. 利用robots.txt机器人协议防止爬虫(君子协议)
    在网站站点目录下面,放robots.txt文件

  2. 利用 $http_user_agent变量阻止爬虫代理访问(2种方法)

Nginx防爬虫优化(spider|bot)
利用程序开发验证码信息,阻止进行爬虫

09. 使用普通用户启动 nginx

(nginx 监牢模式 keep in jail)

利用nginx -c 参数启动nginx多实例, 使master进程让普通用户管理
普通用户无法使用1-1024端口 所以我们要80 -- 转发iptables -- 8080端口

10. 控制 nginx 并发连接数

利用limit_conn_zone参数和$binary_remote_addr变量限制nginx单IP地址并发连接数

利用limit_conn_zone参数和$server_namer变量限制nginx虚拟主机总连接数

11. 控制客户端访问请求nginx的速率
1imit_req_zone $binary_remove_addr zone=one:10m rate=1r/s;1
以请求的客户端IP作为key值,内存区域命名为one,分配10m内存空间,访问速率限制为1秒1次请求

你可能感兴趣的:(nginx安全优化相关)