2020-11-25学习总结:
1.编译之前隐藏版本号
2.(纵向)进程调优:这个很重要,高并发就做在这个位置
3.工作账户,开机自启动等:工作账户直接useradd username -M -s /sbin/nologin 然后主配里修改user即可;开机自启动通过systemctl管理实现 vim /usr/lib/systemd/system/servicename.service 通过手写三个模块即可。
4.(纵向)Nginx运行CPU亲和力:这个具体要看公司怎么安排,如果是我个人角度看的话,首先使用top 然后1 看看设备上有几个cpu。 一般来说,几个cpu我会开几个进程。无论设备条件如何,我最多开8个进程。至于线程当然是多多益善。该项配置的参数是:
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
注意:中间有几个0是和进程数有关,而1的位置,和第几个线程有关
worker_processes 2;
worker_cpu_affinity 0101 1010;
表示第一个进程在第一个和第三个cpu上运行,第二个进程在第二个和第四个cpu上运行,两个进程分别在这两个组合上轮询!
5.(纵向)nginx最大打开文件数:
worker_rlimit_nofile 102400; 添加标红内容
当一个nginx进程打开的最多文件数目,理论值应该是服务器最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。(使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数 所以说这个要做到一致的前提是专机专用 他的报错是这个参数在/etc/sercurity里头)
前五个是全局块
6.使用epoll
7.worker_connections 65535;
8. top -u nginx’s username 查看每个进程占用的内存资源
如图
6-8是event块
9.开启高效传输:
sendfile on;(这个参数平时就开着,如果是作用于下载或者是图片显示不正常的情况,就改成off 然后重载一下)
tcp_nopush on; (这个参数同步上边的 同On同off)
10.连接时间
keepalive_timeout 65; #在35下添加如下行
tcp_nodelay on;
client_header_timeout 15;
client_body_timeout 15;
send_timeout 15;
11.重中之重location匹配
= 用于精确字符匹配(模式),不能使用正则,区分大小写。
在讲这个Location匹配之前,一定要讲servername匹配。
12.Fastcgi调优
nginx的缓存功能有:proxy_cache / fastcgi_cache
proxy_cache的作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态。
fastcgi_cache的作用是缓存fastcgi生成的内容,很多情况是php生成的动态的内容。
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端宽带。
fastcgi_cache缓存减少了nginx与php的通信的次数,更减轻了php和数据库(mysql)的压力。
13.gzip 调优
gzip on;
gzip_min_length 1k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/css text/xml application/javascript;
gzip_vary on;