这篇文章主要介绍了关于nginx管理配置优化,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
优化思路
1、调整参数隐藏nginx软件版本号信息
server_tokens off;
2、更改nginx服务默认用户
user nginx nginx;
3、优化nginx服务的worker进程个数
worker_processes cpu*核数;
4、优化绑定不同的nginx进程到不同的cpu上
worker_cpu_affinit 0001 0010 0100 1000 0001 0010 0100 1000;
5、nginx时间处理模型优化
use epoll
6、调整单进程最大连接数
worker_connections 20480;
7、nginx work进程最大打开文件数
worker_rlimit_nofile 65535;
8、开启高效文件传输模式
sendfile on;
用于开启文件的高效传输模式,同时将tcp_nopush和tcp_nodelay两个指令设置为on,可以防止网络及磁盘I/O阻塞,提升nginx工作效率。
9、优化连接超时时间
keepalive_timeout 0; //结束响应后立即断开tcp连接。
10、fastCGI优化
11、配置nginx gzip压缩实现性能优化
gzip on; gzip_min_length 1k; gzip_buffers 4 32k; gzip_comp_level 9; gzip_vary on;
12、配置nginx expires缓存实现性能优化
nginx expires 3650d;
13、nginx日志相关优化与安全
14、根据拓展名限制程序和文件访问。
dell all;allow all;
15、防盗链
HTTP referer
1、系统层面优化
echo 500000 > /proc/sys/net/core/somaxconn //设置最大连接数 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle //加快tcp回收 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse //空的tcp允许回收利用 echo 0 > /proc/sys/net/ipv4/tcp_syncookies //关闭洪水抵御
2、nginx&php-fpm优化配置
nginx将请求转发给php-fpm处理,当nginx转发很多请求时,php-fpm进程不够用,就会生成子进程。
然而生成子进程需要内核来调度,比较耗时。
如果网站并发比较大,可以用静态方式一次性生成多个子进程,保持的内存中。
修改phjp-fpm.conf
pm=static //让php-fpm进程始终保持,不需要动态生成pm.max_children=32 始终保持的子进程数量
3、php&mysql优化
内核层面:加大连接数,加快tcp回收
mysql层面:增大连接数
php层面:用长连接,节省连接数
用内存缓存(memcached
),减轻mysql压力
注意
内存缓存适用于缓存复杂的sql查询。因为php
与memcached
也要建立tcp连接,所以简单的sql查询不需要用缓存。
以上是nginx管理配置优化的详细内容。更多信息请关注PHP中文网其他相关文章!