原先应用单节点跑着,用户一直抱怨服务响应很慢,为了提升用户体验,想到了试试多节点负载均衡缓解
服务器压力的想法,于是找到nginx的window版本,根据官方文档对参数内容的介绍,设置了相应的参数
。配了一个双节点的WEB应用,终于解决了这个问题。
上图中是我截图的部分访问日志截图,基本上每天产生150M到200多兆的访问日志,因用户反馈比较满意故贴出配置文件供大家参考。
从nginx官网下载相应的安装包解压到相应的目录,我是放c盘 然后修改目录名字为nginx,进入目录 双击nginx.exe,如配置参数则打开conf目录下的nginx.conf做修改(此处是心的核心)。
我的测试和调试后的文件列出如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
tcp_nopush on; #在一个数据包发送头文件,而不一个接一个的发送。
sendfile on; #立即将数据从磁盘读到OS缓存。
keepalive_timeout 1800; #nginx超时时间
#gzip on;
OPEN_FILE_CACHE MAX=102400 INACTIVE=20S; #打开缓存的同时也指定了缓存最大数目,以及缓存的时间。
OPEN_FILE_CACHE_VALID 30S; #在OPEN_FILE_CACHE中指定检测正确信息的间隔时间。
OPEN_FILE_CACHE_MIN_USES 2; #不活动时间期间里最小的文件数。
OPEN_FILE_CACHE_ERRORS ON; #定了当搜索一个文件时是否缓存错误信息
proxy_temp_path C:\\nginx-1.12.0\\temp\\temp_path; #创建缓存的时候可能生成一些临时文件存放的位置
proxy_cache_path C:\\nginx-1.12.0\\temp\\cache_temp levels=1:2 keys_zone=mycache:20m
max_size=2048m inactive=60m; #定义缓存存储目录、缓存级别、缓存数据源数据的空间
upstream bakend {
ip_hash;
server 192.168.3.114:8080;
}
server {
listen 8081;
server_name 192.168.3.6;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://bakend; #代理web服务器
proxy_cache mycache; #内存缓存源数据空间名字对应前面的设定
proxy_cache_valid 200 302 60m; #页面返回码为200 302 的缓存60分
proxy_cache_valid 404 1m; #页面错误响应吗404缓存时间1分
proxy_redirect off;
proxy_set_header Host $host; #请求未携带“Host”请求头时加上虚拟主机的主域名
proxy_set_header X-Real-IP $remote_addr; #在web服务器端获得用户的真实ip
proxy_set_header REMOTE-HOST $remote_addr; #在web服务器端获取主机名
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 16m; #上传大文件限制16M
client_body_buffer_size 256k; #指定连接请求使用的缓冲区大小。
proxy_connect_timeout 75; #设置与nginx的连接超时时间,不能超过75秒。
proxy_send_timeout 600; #发送超时 默认为600秒
proxy_read_timeout 600; #读取超时 默认为600秒
proxy_buffer_size 256k; #后端服务器的相应头会放到proxy_buffer_size当中
proxy_buffers 4 256k; #proxy_buffers的缓冲区以应付大网页。
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k; #是一次访问能写入的临时文件的大小
proxy_next_upstream off; #禁用将请求传递到下一个服务器
proxy_max_temp_file_size 128m; #写入硬盘的临时文件的大小
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
}
注:大家要按照自己的情况,添加和修改响应的参数,和参数值,切不要直接直接拿来主义用,因为不同场景下NGINX的参数调整得到的用户体验千差万别。