• nodejs 通过nginx后出现响应慢的解决方法


        最近用了nodejs搭建服务器,然后用了nginx做了反向代理,项目开发需求,没办法。但是发现了经过代理之后发现网页请求变慢了,而且是不能忍的一分钟以上。

        一开始,怀疑是在nodejs那边的问题,结果在nodejs那边进行了判断(通过写测试代码),但是发现是经过了一分多钟请求才到nodejs这边,那么只能先排除nodejs这方面的问题。

        那么要排除nginx的问题,我的环境是 windows7(x64) nginx(1.62)  nodejs(4.23),配置如下

    server {
        listen 80;
        server_name mysite.com;
        location / {
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-NginX-Proxy       true;
            proxy_set_header    Connection          "";
            proxy_http_version  1.1;
            proxy_pass          http://localhost:3333;
        }
    }

        这是一个比较普通的配置,找不出来问题,那么只能去找错误日志了,突然发现错误日志error.log里面有这么一段代码

    2015/12/25 16:30:43 [error] 7652#7008: *1 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 127.0.0.1, server

        之前没怎么留意错误日志,罪过了啊,那么既然发现了这个错误,找方法就简单多了。

        像是nodejs那边没有给nginx及时响应,那么可以增加这几个配置来解决(单位为秒)

    proxy_connect_timeout 1; 
    proxy_send_timeout 30; 
    proxy_read_timeout 60;

        这三个设置的定义是:

        proxy_connect_timeout
        后端服务器连接的超时时间_发起握手等候响应超时时间

        proxy_read_timeout
        连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)

        proxy_send_timeout
        后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据

        添加之后,就解决了,完整的是:

    server {
        listen 80;
        server_name mysite.com;
        location / {
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-NginX-Proxy       true;
            proxy_set_header    Connection          "";
            proxy_http_version  1.1;
            proxy_connect_timeout 1; 
            proxy_send_timeout 30; 
            proxy_read_timeout 60;
            proxy_pass          http://localhost:3333;
        }
    }



        



  • 相关阅读:
    awk 字符串函数
    C标准函数库中获取时间与日期、对时间与日期数据操作及格式化
    Redis 命令总结
    个人网站和博客赚钱之路(转)
    二叉树的前序、中序、后序遍历与创建
    16个值得个人站长做的广告联盟[转自cnzz]
    mysql 添加[取消]timestamp的自动更新
    转:函数式编程初探
    可爱的 Python : Python中的函数式编程,第三部分
    可爱的 Python : Python中函数式编程,第二部分
  • 原文地址:https://www.cnblogs.com/subying/p/5076498.html
Copyright © 2020-2023  润新知