优化类型 |
优化说明 | 优化方法 |
安全优化 |
修改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默认用户,采用编译参数方式实现 |
||
client_max_body_size设置客户端请求报文主体最大尺寸 | ||
根据HTTP referer实现防盗链 根据cookie防盗链 在产品设计上解决盗链方案 |
||
只将用户上传数据的目录设置为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虚拟主机总连接数 |
||
控制客户端请求Nginx的速率 |
||
性能优化 |
woker_processes 8 一般和CPU的颗数设置一致;高并发可以和CPU核数相当 也可以配置为核数的两倍 |
|
利用worker_cpu_affinity进行优化 4颗CPU优化配置参数为0001 0010 0100 1000 2颗CPU优化配置参数为0101 1010 |
||
利用use epoll参数修改事件模型为epoll模型 事件模型指定配置参数放置在event区块中 |
||
利用worker_connections连接参数进行调整 用户最大并发连接数=worker进程数*worker连接数 |
||
利用worker_rlimit_nofile参数进行调整 | ||
利用sendfile on开启高效传输模式 tcp_nopush on表示将数据积攒到一定的量再进行传输 tcp_nodelay on表示将数据信息进行快速传输 |
||
keepalive_timeout优化客户端访问nginx服务端超时时间 client_header_timeout优化服务端读请求头超时时间 client_body_timeout优化两个请求主体发送间隔超时时间 send_timeout优化两个响应信息的间隔超时时间 |
||
优化利用FastCGI与PHP连接缓冲信息 优化利用FastCGI与PHP连接缓存信息 |
||
利用gzip命令进行对数据信息压缩优化 从而节省网站带宽资源 |
||
利用location匹配相应要缓存的信息,利用expires参数结合时间信息进行缓存。 | ||
日志优化 |
进行日志文件轮询切割 部分访问过程不显示日志信息 对日志文件进行授权 |
|
在动态解析配置前面,设置限制特定目录下扩展名文件解析 限制指定目录uri信息访问,利用禁止策略和返回错误状态码 限制用户访问,利用白名单和黑名单方式 禁止非法域名解析访问企业网站 |
||
感知优化 |
对错误代码实行本地页面跳转 优雅显示错误页面放到本地单独目录下,进行优雅显示 改变状态码为新的状态码,并显示指定的文件内容 错误状态码URL重定向 将错误状态码重定向到一个location |
|
全面优化 | ||
利用程序或反向代理实现架构访问分离解耦优化 |