标签:RoCE 表示 alt bmp mod 数据段 /etc/ 版本 后缀
nginx调优 |
nginx 配置文件模块: main全局设置:
events stream四层代理模块 upstream 负载均衡设置:后端主机 server http模块 gzip 压缩作用 server模块 主机设置:port localtion 匹配页面位置,每个页面在什么位置上 localtion URL特定匹配设置 server模块
server继承main的设置 localtion 继承server upstream不会继承,也不会被继承
nginx配置文件调优: vim /usr/local/nginx/conf/nginx.conf main全局设置 user nginx; //用户 group nginx; //组
worker_processes 2; //进程数量,每个进程占12-15MB的内存,如果多核,建议和cpu数量一样
error_log logs/error.log; //开启日志级别 #error_log logs/error.log notice; #error_log logs/error.log info;
日志级别:debug\info\notice\warn\error\crit
worker_rlimit_nofile 65535; //nginx进程可以打开做多文件描述数量 注意: ulimit -n 65535 //生效文件描述,默认是1024
stat nginx.conf //查看描述文件, 单个文件最大权限666,当是一个程序的时候才是777,目录的最大权限是777,目录没有执行权的时候,打不开目录文件的描述信息,只能看到目录名,看不到具体的物理位置,
events { use epoll; //多路复用,可以大并发的处理文件, 1.select/poll/ 标准模式,常规工作模式 2.kqueue/epoll/rtsig 高效模式:BSD:kqueue linux:epoll 很少用:rtsig worker_connections 65535; } //每个值的最大连接数量,默认1024 1.max_client=worker_processes * worker_connections 2.反向代理:max_client=worker_processes * worker_connections/4
注意:这两个必须用这个启动ulimit -n 65535: 临时生效: worker_rlimit_nofile 65535; worker_connections 65535;
永久生效: vim /etc/rc.local 添加:ulimit -n 65535
************************ 第二个模块: http的模块
http { include mime.types; //包含的另外的配置文件,简化主配置文件
default_type application/octet-stream; //应用层的二进制流,没有定义文件类型的时候,使用二进制流,php-fpm启动失败了,然后就会出现下载的php文件
#log_format main //日志格式,自己喜欢的格式access_log logs/access.log main; client_max_body_size 20m; //客户端请求的最大的单个文件字节数,默认2m,公司最大的文件字节数 client_header_buffer_size 32k; //用来指定客户端缓冲区大小,是软件申请的内存空间,操作系统无法管理大小,静态页面1k足够,动态cookie,cookie越大这个值越大,128k large_client_header_buffers 4 32k; //客户端请求较大的消息头部,最大值和大小 4 32k=128k,最大缓存就是128k/或者是4 128k=256k
添加: Dertypage:cpu处理完成要往硬盘里写的数据 buffer :缓冲区 内存处理一个数据大概100ns,硬盘是s秒
sendfile on; //开启高效传输模式,这个开,下边两个才生效, tcp_nopush on;//不要重传 tcp_nodelay on;//不要延迟,数据进来不禁列队,直接进来。 //这两个参数合起来防止网络拥塞
TCP封装格式: URG 数据的优先级,
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,TCP,建立连接,然后ack,进行数据传输,UDP,给一个数据,一个ack
PSH表示有 DATA数据传输,
RST表示连接重置。
TCP的流控机制:
滑动窗口:表示本地接受的字节数。
TCP差错控制: 要多少传多少
1.重传计时器: 发出的每一个包都开启一个计时器,3600s,然后等待对方回应,如果没有回应,然后在传一个,并重新开启一个计时器,然后最大10次以后彻底断开。
2.坚持计时器: 为了防止0窗口锁死状态,第一就是在超时前如果回应了,继续发消息,如果丢掉了,就会发送探测数据段,用来测试是否在线,
3.保活计时器: 确认关系后,客户端不给服务器发数据,然后服务器进行探测数据的10个的发送。也是3600s
4.时间等待计时器: 发一个FIN,然后等待最后一个ack超时,然后断开连接,就是在断开的时候进行等待,然后3600后彻底断开。
UDP 一个data,一个ack
# keepalive_timeout 0; keepalive_timeout 60; //保活计时器,客户端保活的时间 client_header_timeout 10; //客户端请求头部的超时时间,超时返回408错误, client_body_timeout 10; //主体读取超时时间,返回408错误 send_timeout 10; //响应客户端的超时时间,关闭连接
添加模块: cd /usr/src/nginx-1.11.1/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-stream --with-http_gzip_static_module && make
cd /usr/local/nginx/sbin/ mv nginx nginx.bak cd /usr/src/nginx-1.11.1/objs/ cp nginx /usr/local/nginx/sbin/ nginx -V
注意: 只需要make—— 替换二进制文件 不要make install
**************************** 压缩模块: gzip on;开启 gzip_min_length 1k; //允许压缩页面的最小字节数,Content_Length,大于1k压缩,否则不压缩 gzip_buffers 4 16k; //4个16k,作为压缩结果缓存,默认与原数据相同小大空间 gzip_http_version 1.1; //http压缩支持的版本 gzip_comp_level 2; //【1-9】小:压缩比例小,速度快,大反之 gzip_types text/plain application/x-javascript text/css ap plication/xml; //指定压缩的类型, gzip_vary on; 注意:可以让前端缓存服务器经过gzip的缓存页面,务必打开
*****************************
轮询模块: upstream licluster { //什么都不写,按照时间顺序 ip_hash: // //按照请求访问ip的hash结果分配范围,解决动态网站的session共享问题 fair; //按照页面大小的加载时间长短,根据后端服务器响应时间来分配,第三方模块,自己下载一个upstream_fair模块 url_hash; //按照url的hash结果分配,每个url定向到同一个后端服务器,提高后端缓存服务器的效率,需要按装nginx hash模块, server 192.168.117.100:80 weight=6;
server 192.168.117.101:80 down; //down不参与轮询,backup备份机,全部非backup主机不可访问是才生效。 server 192.168.117.102:8008 max_fails=3 fail_timeout=20s; //max_fails 允许请求失败的次数,默认值是1,proxy_next_upstream定义错误模,fail_timeout 失败后暂停服务的时间,这两个一定是连用的。 server 192.168.117.103:8080; //当负载均衡调度算符是ip_hash的时候后端服务器在负载均衡调度中的状态不能是weight和backup,weight和backeup的优先级高,同时存在ip_hash失效。
******************************* 主机模块: server { listen 80; server_name www.baidu.com; //域名
charset gb2312; //字符集
access_log logs/www.li.com.access.log main //定义日志 index.html index.jsp //定义页面文件 root /var/www/html/www.li.com //定义网站的保存路径。
****************************** 代理模块: location / { root html; index index.html index.htm; }
添加: location ~ .*\.(gif|jpg|jpen|png|bmp|swf)$ { //图片服务器代理 root /var/www/html/www.li.com/img //存放位置 expires 30d; //过期时间为30天 }
location ~ ^/(upload|html)/ { //静态页面 root /var/www/html/www.li.com/img expires 10d; //过期时间为10天 }
location ~ .*.jsp$ { //解析jsp脚本 index index.jsp; proxy_pass http://localhost:8080; }
location / { proxy_pass http://licluster; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
include /usr/local/nginx/conf/proxy.conf; 注意:将下边的代理都写到上边的proxy.conf这个文件中,可以简化主配置文件
proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for; client_body_buffer_size 128k; //暂时缓存到本地,然后在转给客户端,客户端请求的主体缓冲区的的大小。 proxy_connect_timeout 90; //后端服务器连接的超时时间发起握手等候响应的超时时间 proxy_send_timeout 90; //后端服务器的数据回传时间,规定时间内后端服务器必须回传完成所有的数据,否则断开连接。 proxy_send_timeout 90; //设置nginx从代理的后端服务器获取信息的时间,表示建立连接后,nginx等待后端服务器的响应时间。 proxy_buffer_size 4k; //设置缓冲区的大小。默认等于buffers的大小 proxy_buffers 4 32k; //设置缓冲区的数量和大小,nginx从后端获取的响应信息放到缓存中去 proxy_busy_buffers_size 64k; //用于设置系统繁忙是可以临时开启的大小,是上一条的2倍 proxy_temp_file_write_size 64k; //指定proxy缓存临时文件的大小。 }
location ~* \.(gif|jpg|png|flv|wma|avi|wmv|mp3|zip|rar)$ { //遇到这些后缀的时候进行防盗链
valid_referers none blocked *.li.com li.com; //只能让这两个网站进行访问 if ($invalid_referer) { rewrite ^/ http://www.li.com/img/error.gif; #return 403; } } location /images { root /var/www/html/www.li.com/img if ($invalid_referer) { rewrite ^/ http://www.li.com/img/error.gif; #return 403; } }
日志切割: 一般日志到了1G就进行切割
wc -w 单词 wc -c 字节数
1.原日志文件的位置: cd /usr/local/nginx/logs/ ls access.log error.log
2.查找PID文件位置, cat /usr/local/nginx/logs/nginx.pid
3.编辑日志切割的脚本 vim /etc/init.d/nglog #!/bin/bash savepath_log=‘/home/nginx/logs/‘ nglogs=‘/usr/local/nginx/logs‘ mkdir -p $savepath_log/$(date +%Y)/$(date +%m) mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
chmod +x /etc/init.d/nglog 启动日志文件 /etc/init.d/nglog start
|
|
标签:RoCE 表示 alt bmp mod 数据段 /etc/ 版本 后缀
原文地址:https://www.cnblogs.com/Leonardo-li/p/9071252.html