nginx 优化方案

nginx优化思路

安全优化

1.隐藏nginx版本信息优化

修改nginx配置文件实现优化

server_tokens off;

2.修改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

3. 修改nginx软件 work_processes 进程用户信息

修改nginx默认用户,利用配置文件参数实现

修改nginx默认用户,采用编译参数来实现

user www www;

4.优化 nginx 服务上传文件限制

client_max_body_size 设置客户端请求报文主体最大尺寸

用户上传文件 大小

5.Nginx 图片及目录防盗链解决方案

根 据 HTTP referer 实现防 盗链
Nginx 图 片 及 目录防 盗链解 决方案
用 户 从 哪 里 跳转过 来的( 通过域 名) referer 控 制
if ( $http_referer !~
“ www.baidu.com” ) {
return 403;
}
根 据 cookie 防盗 链
cookie 和 session 区别?

通 过 加 密 变 换访问 路径实 现防盗 链
在 产 品 设 计 上解决 盗链方 案

6. Nginx 站点目录文件及目录权限优化

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

  1. 站 点 目 录 整 体

文 件 和 目录 file 644 dir 755 root
root

  1. 用户上传 目 录

/upload
文 件 和目录 file 644 dir 755 www www

  1. 指 纹 认证系统 (md5sum )

7.Nginx 放爬虫优化

利 用 robots.txt 机 器人协 议防止 爬虫( 君子协 议)
 在网站 站 点 目录下 面,放 robots.txt 文 件
利 用 $http_user_agent 变量阻 止爬 虫代理 访问( 2 种方 法)
Nginx 防 爬 虫 优化(spider|bot)

利 用 程序开发验证码信息, 阻 止 进行爬虫
sem 百 度 竞 价

搜 索 引 擎 : 把 网 址 页 面 收入 进来 方 便 大 家 搜索 的时候 能

找 到

公 司 爬 取 用 户数据

8.利用 Nginx 限制请求访问

利 用 $request_method 限制请 求方法

9.使用普通用户启动 Nginx (nginx 监牢模式 keep in jail)

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

10.控制 nginx 并发连接数

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

11.控 制 客 户 端 请求 Nginx 的速 率

性能优化

1.修改nginx软件work_processes进程数量

woker_processes 8

一般和CPU的核数设置一致;高并发可以和CPU核数的2倍

lscpu

/proc/cpuinfo

top按1

一个核心处理一件事情

intel 超线程技术

一个核心可以处理两件事情

2.优化 nginx 服务进程均匀分配到不同的CPU进行处理

利用 worker_cpu_affinity进行优化(cpu亲和力)让CPU的每个核心 平均

4颗 CPU 优化配置参数为 0001 0010 0100 1000

2颗 CPU 优化配置参数为 0101 1010;

worker_cpu_affinity 0101 1010;

worker_cpu_affinity auto;

Linux 系统设置 CPU 亲和力 taskset(15k)

3.优化 nginx 事件处理模型

利 用 use epoll 参数修 改事件 模型为 epoll 模 型
事件模型指定配置 参数放 置在 event 区块 中
nginx

epol l 处理数据 异步
apache select 处理数据同 步

4.优化 nginx 单进程客户端连接数

利 用 worker_connections 连接参 数进行 调整
用 户 最 大 并 发连接 数=worker 进程数 *worker 连接数

5.优化 nginx 服务 进程打开文件数

利 用 worker_rlimit_nofile 参数 进行 调整(65535)

6.优化 nginx 服务 数据高效传输模式

利 用 sendfile on 开 启高效 传输模 式
tcp_nopush on 表 示 将数 据积攒 到一定 的量再 进行传 输
tcp_nodelay on 表 示将数 据信息 进行快 速传输

7.优化 nginx 服务超时信息

keepalive_timeout 优化 客户端 访问 nginx 服务端 超时时 间
http 协 议 特 点: 连 接 断开后会给 你保留 一段时 间
client_header_timeout 优化服 务端读 请求头 超时时 间
client_body_timeout 优化两 个请求 主体发 送间隔 超时时 间
send_timeout 优化 两个响 应信息 的间隔 超时时 间

8.优化 nginx 服务与 FastCGI 连接缓存与缓冲信息

优化利用 FastCGI 与 PHP 连 接缓冲 信息
优化利用 FastCGI 与 PHP 连 接缓存 信息
参 考 下面图 :fastcgi buffer 与 cache

9.配置 Nginx gzip 压缩实现性能优化(下面有案例)

利 用 gzip 命 令进行 对数据 信息压 缩优化
从 而 节 省 网 站带宽 资源 gzip 配置

10.配置 Nginx expirex 实现让客户端缓存数据

利用 location 匹配相应要缓存的信息,利用 expires 参数结合事件信息进行缓存。

把数据缓存到浏览器中。

expires 客户端缓存图片或静态资源设置

日志优化

1.配置 Nginx 服务相关日志操作

进 行 日志文件轮询 切割
1.yum 安 装 nginx,自动 切割 (logrotate)
2.编 译 安 装 手动 切割 (logrotate)
部分日志 内 容不进 行记录 ,节省 系统磁 盘空间
对 日 志 文 件 进行授 权

logrotate 日 志 切 割工具 + 系 统 定 时 任务

kill -USR1 cat /var/run/nginx.pid

2.Nginx 站点目录及文件 URL 访问控制

在 动 态 解 析 配置前 面,设 置限制 特定目 录下扩 展名文 件解析
限制指定目录 uri 信 息访问 ,利用 禁止策 略和返 回错误 状态

限 制 用 户 访 问,利 用白名 单和黑 名单方 式
禁 止 非 法 域 名解析 访问企 业网站

感知优化

1.Nginx 错误页面的优雅显示

对 错 误 代 码 实行本 地页面 跳转
优雅显示错误页面 放到本 地单独 目录下 ,进行 优雅显 示
改 变 状 态 码 为新的 状态码 ,并显 示指定 的文件 内容
错误状态码 URL 重定向
将 错 误 状 态 码重定 向到一 个 location

全面优化

1. Nginx 网站 CDN 加速优化

2.Nginx 程序架构优化

利 用 程 序 或 反向代 理实现 架构访 问分离 解耦优 化

你可能感兴趣的:(nginx 优化方案)