Nginx日常配置优化
1、日志切割
由于Nginx没有Apache服务的cronolog日志切割功能,所以需要进行相关优化处理,可以编写脚本来自动切割日志文件
#!/bin/sh
logpath="/nginx/logpath"
nginxlogs="/var/log/nginx/"
mkdir -p $logpath/$(date +%Y)
mv $nginxlogs/access.log $logpath/$(date +%Y)/access_$(date +F).log
mv $nginxlogs/error.log $logpath/$(date +%Y)/access_$(date +F).log
kill -USR1 `cat /var/log/nginx/nginx.pid`
##通过USR1信号来控制进程,从而重新生成一个新的日志文件
nginx对进程的控制功能非常强,可以通过信号指令来控制进程,常用信号如下
QUIT 处理完当前请求后关闭进程
HUP 重新加载配置,不会中断用户的访问请求
USR1 用于切割日志
USR2 用于平滑升级可执行程序
最后将脚本执行命令加入到定时任务来实现自动切割日志
2、nginx中FastCGI参数优化
提高nginx环境下PHP的运行效率,可以将下面的配置加入到主配置文件中
fastcgi_cache_path /application/nginx/fastcgi_cache_levels=1:2 keys_zone=TEST:10m inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 3011d;
fastcgi_cache_valid any 1m;
##应答缓存时间
3、nginx的HTTPgzip模块配置
[root@centos7 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --prefix=/usr/local/nginx
可以看出在编译时已加上此模块,因此只需要在配置文件里进行配置即可
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;