nginx 502
2015-11-18 19:24
696 查看
今天在后台管理系统,执行一个读取文件然后进行处理的功能时,由于没有做成异步处理,导致出现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还是很强大的。
由于时两台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还是很强大的。
相关文章推荐
- nginx.conf 配置文件详解
- nginx 快速搭建
- FastDFS的配置、部署与API使用解读(7)Nginx的FastDFS模块
- nginx报 File not found 错误
- Nginx初探
- Nginx初探
- Nginx的源码结构和模块初始化
- Nginx 图片 js文件缓存配置方法
- nginx +php 编译
- 绝对详细!Nginx基本配置、性能优化指南
- Nginx负载均衡记录
- linux+nginx+php-fpm搭建学习笔记
- Nginx安装配置与部署
- 将nginx编译成静态库
- Nginx初探
- Nginx 改变错误日志打印级别
- Nginx 负载均衡 设置
- Nginx + PHP (Windows安装)
- 配置nginx,支持php的pathinfo路径模式
- 给Nginx配置一个自签名的SSL证书