zoukankan      html  css  js  c++  java
  • nginx 502

    今天在后台管理系统,执行一个读取文件然后进行处理的功能时,由于没有做成异步处理,导致出现time out。而改功能执行了两次,数据库中出现了double倍的记录。

    由于时两台server,通过nginx来进行负载均衡。所以,查看服务器日志,发现每一次请求执行两次,是因为对每一个服务器都发送了一次请求。

    后来换了测试服务器,没用nginx,执行成功。又用server1的ip+端口直接进行访问,也执行成功。

    所以,初步判断是nginx将超时的请求发送给了另一台server

    参照 http://www.linuxyan.com/web-server/67.html

    nginx有一个功能,就是当后端的服务器返回给nginx502、504、404、执行超时等错误状态的时候,

    nginx会自动再把这个请求转发到upstream里面别的服务器上面,从而给网站用户提供更稳定的服务。

    配置如下:
    location /
    {
    #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
    proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
    proxy_pass http://php_server_pool;
    proxy_set_header Host www.yourdomain.com;
    proxy_set_header X-Forwarded-For $remote_addr;
    }
    这样的话,也算是保障了后端服务器的一个高可用性,不得不说,nginx还是很强大的。

  • 相关阅读:
    如何进行Django单元测试
    django使用celery实现异步操作
    django 多并发,多线程。
    cookies设置时间
    Mysql实现企业级日志管理、备份与恢复
    Redis与Memcached的区别
    cookie 和session 的区别详解
    python内存泄露查找
    浙大月赛ZOJ Monthly, August 2014
    Vector
  • 原文地址:https://www.cnblogs.com/govoid/p/4975625.html
Copyright © 2011-2022 走看看