博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
企业级Nginx Web服务优化实战
阅读量:6269 次
发布时间:2019-06-22

本文共 1614 字,大约阅读时间需要 5 分钟。

 web优化一览总结表

优化类型

优化说明

优化方法

安全优化

修改nginx配置文件实现优化

server_tokens off;

修改nginx源码配置文件

nginx-1.6.3/src/core/nginx.h

ngx_http_header_filter_module.c

nginx-1.6.3/src/http/ngx_http_special_response.c

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

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

性能优化

woker_processes 8

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

利用worker_cpu_affinity进行优化

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

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

利用use epoll参数修改事件模型为epoll模型

事件模型指定配置参数放置在event区块中

利用worker_connections连接参数进行调整

用户最大并发连接数=worker进程数*worker连接数

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

利用sendfile on开启高效传输模式

tcp_nopush on表示将数据积攒到一定的量再进行传输

tcp_nodelay on表示将数据信息进行快速传输

keepalive_timeout优化客户端访问nginx服务端超时时间

client_header_timeout优化服务端读请求头超时时间

client_body_timeout优化两个请求主体发送间隔超时时间

send_timeout优化两个响应信息的间隔超时时间

安全优化

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

性能优化

优化利用FastCGI与PHP连接缓冲信息

优化利用FastCGI与PHP连接缓存信息

利用gzip命令进行对数据信息压缩优化

从而节省网站带宽资源

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

日志优化

进行日志文件轮询切割

部分日志内容不进行记录,节省系统磁盘空间

对日志文件进行授权

在动态解析配置前面,设置限制特定目录下扩展名文件解析

限制指定目录uri信息访问,利用禁止策略和返回错误状态码

限制用户访问,利用白名单和黑名单方式

禁止非法域名解析访问企业网站

安全优化

根据HTTP referer实现防盗链

根据cookie防盗链

通过加密变换访问路径实现防盗链

在产品设计上解决盗链方案

感知优化

对错误代码实行本地页面跳转

优雅显示错误页面放到本地单独目录下,进行优雅显示

改变状态码为新的状态码,并显示指定的文件内容

错误状态码URL重定向

将错误状态码重定向到一个location

安全优化

只将用户上传数据的目录设置为755,用户和组使用nginx

其余目录和文件为755/644,用户和组使用root

利用robots.txt机器人协议防止爬虫(君子协议)

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

利用程序开发验证码信息,阻止进行爬虫

利用$request_method限制请求方法

全面优化

 

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

安全优化

利用nginx –c参数启动nginx多实例,使master进程让普通用户管理

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

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

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

 

 

   

转载于:https://www.cnblogs.com/syf-com/p/8902977.html

你可能感兴趣的文章
Codeforces 712C Memory and De-Evolution
查看>>
编写的windows程序,崩溃时产生crash dump文件的办法
查看>>
Ural2110 : Remove or Maximize
查看>>
Django REST framework 的TokenAuth认证及外键Serializer基本实现
查看>>
《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
查看>>
Spring Boot日志管理
查看>>
动态注册HttpModule管道,实现global.asax功能
查看>>
使用 ES2015 编写 Gulp 构建
查看>>
[转]Using NLog for ASP.NET Core to write custom information to the database
查看>>
BZOJ 4766: 文艺计算姬 [矩阵树定理 快速乘]
查看>>
MySQL 的instr函数
查看>>
Hibernate的核心对象关系映射
查看>>
接口与抽象类的使用选择
查看>>
if __name__ == '__main__'
查看>>
CF 375D. Tree and Queries【莫队 | dsu on tree】
查看>>
Maven最佳实践 划分模块 配置多模块项目 pom modules
查看>>
Hadoop学习笔记——WordCount
查看>>
Unity应用架构设计(4)——设计可复用的SubView和SubViewModel(Part 1)
查看>>
Java-Spring-获取Request,Response对象
查看>>
opencv项目报错_pFirstBlock==pHead解决办法
查看>>