Nginx:将错误页面设置为静态文件

时间:2015-05-29 14:44:34

标签: nginx configuration system

我有以下nginx配置:

server {
  listen          80;
  server_name     default;

  location / {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080/;
  }

}

http://127.0.0.1:8080/的内部服务没有响应时,nginx会返回 502 Bad Gatway错误

我的问题:如何配置nginx以返回静态html文件,例如/var/www/error.html,何时发生此类错误?

我尝试了什么

采取提示from here我试过了:

server {
  listen          80;
  server_name     default;

  location / {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080/;
  }

  error_page 404 502 /error.html;

  location = /error.html {
    internal;
    root /var/www;
  }

}

如果服务(在端口8080上)关闭,但是当服务启动时我尝试访问url /error.html nginx匹配最后一个位置(返回静态)文件),我想避免它。

1 个答案:

答案 0 :(得分:2)

好吧,如果您真的不想公开错误页面,可以使用命名位置。

server {
  listen          80;
  server_name     default;

  location / {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080/;
    # probably you also need this
    # proxy_intercept_errors on;
  }

  error_page 404 502 @error;

  location @error {
    root /var/www;
    try_files /error.html /error.html;
  }
}