nginx的优化

一.、隐藏版本号

1、修改配置文件

/usr/local/nginx/conf/nginx.conf

在http模块下加入 server_tokens off;

2、在源码包(安装包)改

/src/core/nginx.h

ldefine NGINX_VERSION "1.1.1”" #修改版本号

define NGINX_VER "burun/" NGINX_VERSION

重新安装后

在http模块下加入 server_tokens on;

二、日志分割

Nginx本身没有设计日志分割工具,所以需要脚本编写来实现日志分割。

相关命令

#!/bin/bash
d=$(date +%Y-%m-%d)
# 获取日期
dir="/usr/local/nginx/logs"
# 定义存储目录
logs_file='/usr/local/nginx/logs/access.log'
logs_error='/usr/local/nginx/logs/error.log'
# 定义需要分割的源日志
pid_file='/usr/local/nginx/run/nginx.pid'
# 定义nginx的pid文件

if [ ! -d "$dir" ]
then
    mkdir $dir
fi

mv ${logs_file} ${dir}/access_${d}.log
mv ${logs_error} ${dir}/error_${d}.log
# 移动日志并重命名文件
kill -USR1 $(cat ${pid_file})
# 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件
find $los_path -mtime +30 -exec rm -rf {} \;
g#日志文件清理,将30天前的日志进行清除

三、页面压缩

gzip on; #取消注释,开启gzip的压缩功能

gzip_min_length 1k; #最小压缩文件的大小

gzip_buffers 4 64k; #压缩缓冲区,大小为4个64K缓冲区,Nginx 会使用 4 个 64KB 大小的缓冲区来存储压缩后的数据。

gzip_http_version 1.1; #压缩版本,默认为1.1

gzip_comp_level 6; #压缩比率(压缩等级为1-9,6是中等等级,也是常用等级)Gzip 压缩级别的范围是 1 到 9, 其中 1 表示压缩速度最快,但压缩比最低,9 表示压缩速度最慢,但压缩比最高。默认值为 1。

gzip_vary on; #支持前端缓存服务器支持压缩页面

四、图片缓存

当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度。
一般针对静态网页设置,对动态网页不设置缓存时间。

vim /usr/local/nginx/conf/nginx.conf
http {
.................
 location ~* \.(gif|jpg|jepg|bmp|ico)$ {
             root html;
             expires 1d;    #设置缓存时间为一天;         
         }
}

五、连接超时

vim /usr/local/nginx/conf/nginx.conf
http {
...... 
    keepalive_timeout 65 180;  
    client_header_timeout 80;  
    client_body_timeout 80;   
...... 
}
keepalive_timeout

七、nginx并发设置

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞。

查看cpu核数
cat /proc/cpuinfo |grep processor|wc -l

worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了。

vim /usr/local/nginx/conf/nginx.conf
worker_processes  2;				#修改为核数相同或者2倍
worker_cpu_affinity 01 10;

配置防盗链

vim //usr/local/nginx/conf/nginx.conf
http {
...........
server{
...........
location ~* \.(jpg|gif|swf)$ {            
         root  html;
         expires 1d;
         valid_referers none blocked *.kgc.com kgc.com;   
         if ( $invalid_referer ) {
           rewrite ^/ http://www.kgc.com/error.png;
           }
        }
............
}
...............
}

你可能感兴趣的:(nginx,运维)