nginx后端服务器返回给nginx502、504、404、执行超时等错误状态的解决方法

今天公司的网站访问的时候全部变成404页面,查看网站的文件没有问题,来检查nginx的配置的时候,
发现后端的一台服务器不可用,直接访问那台后台的服务器的时候,返回的是404页面,
因为upstream 里面设置了ip_hash。所以导致我怎么刷新都是404页面。
由此想到了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还是很强大的。

来源:http://www.linuxyan.com/web-server/67.html

时间: 2024-11-10 01:07:42

nginx后端服务器返回给nginx502、504、404、执行超时等错误状态的解决方法的相关文章

vs2015启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法

今天安装了vs2015 下载一个项目进行试用,启动调试的时候提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容. 最可能的原因: 没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览. 可尝试的操作: 如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. 启用目录浏览. 转到 IIS Express 安装目录. 运行appcmd set config /section:system.webServer/directoryBr

“服务器正忙,请稍后再试”常见原因及解决方法?

在网站运维过程中,常会遇到访客反映“服务器正忙,请稍后再试”错误提示,实际上不论是web服务器,游戏服务器,邮件服务器,又或者是软件服务器等,都会遇到诸如“服务器正忙,请稍后再试”类的问题.  游戏服务器正忙  这里就详细列举“服务器正忙,请稍后再试”错误现象常见的原因及相应的解决方法: 1.本地网络配置问题: 本地网络配置问题,包括本地dns服务器配置,浏览器配置等,如果配置不当,都常会出现“服务器正忙,请稍后再试”的错误提示. 解决方法是:根据访问服务器的情况,正确配置本地dns及浏览器相关

服务器加载spring配置文件报context:component-scan节点未声明解决方法

关于jboss服务器启动,spring配置文件加载报错解决方法 The matching wildcard is strict, but no declaration can be found for element 'context:component-scan'. spring配置文件代码: <!-- 自动扫描的包名 --> <context:component-scan base-package="com.regaltec.gtfhr.*,cn.tisson.*"

配置服务器过程中错误Cannot load php5apache2.dll into server的解决方法

用Apache搭建服务器,Apache的版本为:Apache 2.2.25-win32-x86-no_ssl,PHP版本为:php-5.2.6-win32, 编写测试PHP的文件:index.php,内容为: <html> <head><title>php测试</title></head> <?php phpinfo(); ?> </html> 保存在Apache的软件安装目录htdocs文件夹下, 原先搭建过apache

tortoise svn无法连接到svn服务器,但用浏览器可以连接到svn服务器之解决方法

tortoise svn无法连接到服务器,清空"Autherticate data"后,再进行更新,提交,log查看等操作,svn还是不提示输入用户名和密码,而是报: error: Unable to connect to a repository at URL Error: Error running context: No connection could be made because the target machine Error: actively refused it.

Nginx下开启php-fpm的错误提示--open_basedir restriction in effect的错误解决方法

默认在nginx下不显示php的错误提示,开启方法: php.ini    display_errors = On php-fpm.confphp_flag[display_errors] = on realpath(): open_basedir restriction in effect (xxx) is not within the allowed path 的错误解决办法 检查下php.ini中的 open_basedir 设置,把网站所在的目录加上,或直接禁用这个参数

阿里云ECS在CentOS 6.9中使用Nginx提示:nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)的解决方法

说明: 1.[::]:80这个是IPv6的地址. 2.阿里云截至到今天还不支持IPv6. 解决方式: 1.普通解决方式:开启IPv6的支持,不过这个方法在阿里云行不通. vim /etc/nginx/conf.d/default.conf #找到并替换为以下: listen 80; listen [::]:80 ipv6only=on default_server; 2.极端方式:直接屏蔽IPv6,全部服务器都适用. vim /etc/nginx/conf.d/default.conf #找到并

Firefox 打开谷歌页面提示“检测到该服务器正在将此地址的请求循环重定向”的完美解决方法 (转)

尝试:在火狐地址栏打开 about:config,过滤器"搜索"栏里输入 keyword.URL, 未找到该项 输入https://www.google.com 可以打开  那么把以下设为主页就可以了 https://www.google.com.hk/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= 本文适用于Firefox浏览器,Chrome.猎豹等相关的方法请参见http://blog.si

nginx反向代理-后端服务器组设置

nginx服务器的反向代理时其最常用的重要功能之一,在实际工作中应用广泛,涉及的配置指令也比较多.下面会尽量详细地介绍对应的指令,及其使用状态. 反向代理一般是互联网需要向内网拉取资源,比如访问一个web网站时,互联网应用通过一个代理服务器到后面真实的web服务器拉取应用所需的数据. nginx服务器反向代理用到的指令如果没有特别的说明,原则上可以出现在nginx配置文件的http块,server块和location块中,但是同正向代理一样,一般是搭建在nginx服务器中单独配置一个server