原先应用单节点跑着,用户一直抱怨服务响应很慢,为了提升用户体验,想到了试试多节点负载均衡缓解

服务器压力的想法,于是找到nginx的window版本,根据官方文档对参数内容的介绍,设置了相应的参数

。配了一个双节点的WEB应用,终于解决了这个问题。

windows上nginx安装模块_html


上图中是我截图的部分访问日志截图,基本上每天产生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的参数调整得到的用户体验千差万别。