我们经常在处理 nginx 反向代理时,会遇到这样的问题

怎样重新定义上游服务器的错误页面

举个栗子: 我们有一台后台 server 是 windows 服务器。 架构时我们用前端 linux 服务器来做转发,windows 服务器只做后端业务处理。 这时,我们会发现,若后端应用没有定义一个漂亮的 404 页面,用户收到的将是一个 IIS 的默认错误页面。 怎样在不配置 IIS 的情况下实现 nginx 自定义反向代理错误页面呢?

 1server
 2    {
 3        listen 80;
 4        server_name domain.com;
 5        index index.html index.htm index.php default.html default.htm default.php;
 6        root  /var/www/domain.com;
 7
 8        proxy_intercept_errors  on;
 9        recursive_error_pages   on;
10
11        location / {
12            error_page 404 = @backend;
13        }
14
15        location @backend {
16            proxy_pass http://localhost:88;
17            error_page 404 =301  /your-404-page;
18        }
19
20    }