权威的合肥网站建设,百度推广方案,wordpress给文章字段,烟台市城市建设发展有限公司网站介绍
Nginx是目前主流的WEB服务器发布软件#xff0c;不仅可以作为强大的web服务器#xff0c;也可以作为一个反向代理服务器#xff0c;而且nginx还可以按照调度规则实现动静分离#xff0c;可以按照轮询、ip_hash、URL哈希、权重等多种方式对后端服务器做负载均衡#…介绍
Nginx是目前主流的WEB服务器发布软件不仅可以作为强大的web服务器也可以作为一个反向代理服务器而且nginx还可以按照调度规则实现动静分离可以按照轮询、ip_hash、URL哈希、权重等多种方式对后端服务器做负载均衡同时还支持后端服务器的健康检查。
upstream tdt_wugk {server 10.10.141.32:8080 weight1 max_fails2 fail_timeout30s;server 10.10.141.32:8081 weight1 max_fails2 fail_timeout30s;
}1、upstream的fail_timeout和max_fails用来判断负载均衡upstream中的某个server是否失效。在fail_timeout的时间内nignx与upstream中某个server的连接尝试失败了max_fails次则nginx会认为该server已经失效。在接下来的fail_timeout时间内nginx不再将请求分发给失效的server。
2、fail_timeout默认为10秒max_fails默认为1。是指在10秒内nginx与后端server连接失败一次如果在10秒内nginx与后端的连接失败达到一次nginx认为这个server已失效在接下来的10秒内nginx将不会分发请求到这台后端。
3、如果max_fails0即关闭后端服务器健康检查如果权重一样那么每次请求都会有机会发到后端不可用的服务器。另外fail_timeout设置的时间对响应时间没影响这个响应时间是用接下来的proxy_connect_timeout和proxy_read_timeout来控制。
4、proxy_connect_timeoutnginx与后端连接的超时时间单位为秒默认为60秒。我们在nginx错误日志里面看到的(110:Connectiontimedout)就是指nginx与后端连接已经超时。
5、proxy_read_timeout建立连接后nginx等候读取后端服务器响应的时间默认为60秒。在一些比较繁忙的后端比如线程数经常达到峰值了的tomcat这个值注意不要设得太低虽然线程数已经用光但请求已经进入待队列之中。
6、proxy_send_timeoutnginx转发请求到后端的超时时间默认为60秒在这段时间内nginx没将请求数据发到后端将关闭连接。这个在网站有比较多像表单(post)之类的需要留意一下.
7、keepalive_timout时间值意味着一个http产生的tcp连接在传送完最后一个响应后还需要等待keepalive_timeout秒后才开始关闭这个连接。
Nginx配置文件优化参数
nginx进程数建议按照cpu数目来指定一般为它的倍数。
worker_processes 8;为每个进程分配cpu上例中将8个进程分配到8个cpu当然可以写多个或者将一个进程分配到多个cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;这个指令是指当一个nginx进程打开的最多文件描述符数目理论值应该是最多打开文件数ulimit-n与nginx进程数相除但是nginx分配请求并不是那么均匀所以最好与ulimit-n的值保持一致。
worker_rlimit_nofile 102400;使用epoll的I/O模型。
use epoll; 每个进程允许的最多连接数理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。
worker_connections 102400;keepalive超时时间。
keepalive_timeout 60;客户端请求头部的缓冲区大小这个可以根据你的系统分页大小来设置一般一个请求的头部大小不会超过1k不过由于一般系统分页都要大于1k所以这里设置为分页大小。分页大小可以用命令getconfPAGESIZE取得。
client_header_buffer_size 4k;这个将为打开文件指定缓存默认是没有启用的max指定缓存数量建议和打开文件数一致inactive是指经过多长时间文件没被请求后删除缓存。
open_file_cache max102400 inactive20s;这个是指多长时间检查一次缓存的有效信息。
open_file_cache_valid 30s;open_file_cache指令中的inactive参数时间内文件的最少使用次数如果超过这个数字文件描述符一直是在缓存中打开的如上例如果有一个文件在inactive时间内一次没被使用它将被移除。
open_file_cache_min_uses 1;Nginx浏览器缓存优化
浏览器缓存BrowserCaching是为了加速浏览并节约网络资源浏览器在用户磁盘上对最近请求过的文档进行存储。nginx可以通过expires指令来设置浏览器的Header。Expires指令设置:
location~ \.(gif|jpg|jpeg|png|bmp|ico|txt|png|js|css|swf|doc)$ {expires 30d;
}系统fstab性能优化
当文件被创建修改和访问时Linux系统会记录这些时间信息。当系统的读文件操作频繁时记录文件最近一次被读取的时间信息将是一笔不少的开销。所以为了提高系统的性能可以在读取文件时不修改文件的atime属性。可以通过在加载文件系统时使用notime选项来做到这一点。当以noatime选项加载mount文件系统时对文件的读取不会更新文件属性中的atime信息。设置noatime的重要性是消除了文件系统对文件的写操作文件只是简单地被系统读取。一般添加在/etc/fstab里面如下配置tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid5,mode620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults,noatime 0 0