Nginx做负载均衡,请求获取静态文件变慢

SeizeMissing 发布于 2018/09/12 19:57
阅读 1K+
收藏 4

有三台服务器,一台做Nginx反向代理服务器,两台作为web服务器,现在如果是使用代理服务器访问网站发现比直接访问web服务器的时间长,通过使用浏览器查看具体情况,发现获取静态资源(例如js文件,图像文件等)的时间变长,有没有人帮忙看下我配置的Nginx的配置文件有没有问题?非常谢谢!

一下是Nginx服务器有关Nginx的配置:

​

user  www www;
worker_processes  1; # 一般设置成cpu的总核数

error_log   logs/error.log crit; # 错误信息存储的文件
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535; # 每个worker进程的最大连接数
}


http {
    include       mime.types; # nginx支持的媒体文件类型,相对路径为同目录conf下的其他文件
    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  /home/wwwlogs/access.log  main; # 访问日志

    sendfile        on; # 启用sendfile传输模式,此模式是‘零拷贝’
    tcp_nopush     on; # 只在 sendfile on 时有效。让数据包挤满到一定程度才发送出去,集满之前被堵塞

    #keepalive_timeout  0;
    keepalive_timeout  65; # keepalive 的超时时间

    tcp_nodelay on; 
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    gzip on; # 启用gzip压缩响应文件报文
    gzip_static on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 4;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    upstream load_balance {
        #server 127.0.0.1:80;
        server 132.232.163.176:80;
        server 132.232.159.181:80;
        #ip_hash;
    }
    server {
        listen       80;
        server_name  118.24.67.113;
        index index.html index.htm index.php; # 站点主页文件
        #charset koi8-r;
        root /home/html/www; # 站点根目录
        #access_log  logs/host.access.log gzip buffer=32k main;

        location / {
           #设置反向代理
           proxy_pass  http://load_balance;
	       proxy_redirect off;
           proxy_buffering 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_max_body_size 50m; 
           client_body_buffer_size 256k; 
           proxy_connect_timeout 1; 
           proxy_send_timeout 1; 
           proxy_read_timeout 1; 
           proxy_buffer_size 256k; 
           proxy_buffers 4 256k; 
           proxy_busy_buffers_size 256k; 
           proxy_temp_file_write_size 256k; 
           proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; 
           proxy_max_temp_file_size 128m;
	       if ($request_uri ~* \.(ico|css|js|gif|png|jpe?g)$) {
		        expires 24h;
                break;
	       }
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html; # 出现50x错误时,使用/50x.html页返回给客户端
        location = /50x.html { 			 # 定义手动输入包含/50x.html时的location
            root   html;
        }

       
        location ~ \.php$ {
        #    root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all; # 禁止所有网址访问
        }
    }

}

​

 

加载中
0
careyjike
careyjike
加了一层代理肯定会比直接慢,而且你貌似还是反向代理公网为什么不走内网呢
SeizeMissing
SeizeMissing
回复 @袁国涛 : 我最主要的目的的通过Nginx的代理去做负载均衡的,我这样做是不对的 吗?
火眼金睛容嬷嬷
火眼金睛容嬷嬷
回复 @SeizeMissing : 是啊.除非你的机器在一个地域而且直接连公网ip,后边这事基本不可能啊.所谓反向代理,就是为了内外网之间的联系的.你如果是外网且没有什么安全性的话,直接重定向多好
careyjike
careyjike
云服务商都有内网的,在同一地区之间是可以用内网
SeizeMissing
SeizeMissing
回复 @袁国涛 : 你说的是内网ip?
火眼金睛容嬷嬷
火眼金睛容嬷嬷
回复 @SeizeMissing : 不太理解,腾讯云没有内网?
下一页
0
代码打碟手
代码打碟手
是突然变慢吗,还是做了什么改动。我有一次访问变慢,是因为换了https协议
SeizeMissing
SeizeMissing
感觉一直都是那么慢的
0
孤星闵月
孤星闵月
静态文件尽量让Nginx直接处理,动态请求再代理给后端服务器,还有就是,反向代理尽量走内网
SeizeMissing
SeizeMissing
回复 @孤星闵月 : 但是这就会产生一个问题,因为我的项目环境是搭在lnmp上面的,不知怎么的,搭完项目就无法在作为代理服务器,不能负载均衡了?
孤星闵月
孤星闵月
SeizeMissing
SeizeMissing
代理服务器那台也将整个项目部署好,然后在进行动静分离,静态访问本地,动态访问远程,进行负载,是这样吗?
0
我看你还调皮
我看你还调皮

反向代理走内网啊!

多走一层公网肯定会慢

SeizeMissing
SeizeMissing
回复 @我看你还调皮 : 了解了,谢谢
我看你还调皮
我看你还调皮
回复 @SeizeMissing : 是啊,反向代理ip那里写成内外ip 因为内网带宽比公网带宽快太多了
SeizeMissing
SeizeMissing
回复 @我看你还调皮 :我三台服务器都要同一个内网网段吗?
我看你还调皮
我看你还调皮
反向代理后端不走内网,那当然会慢啊. 你找一台跟132.232.163.176 同一个内网的云主机当前端反向代理就可以解决这个问题
SeizeMissing
SeizeMissing
没有内网环境的
返回顶部
顶部