标签: custom-errors

虚拟主机的 nginx 自定义 404 错误页面

我在 nginx 上运行了一些虚拟主机,我希望它们每个都有自己的自定义 404 页面。每个虚拟主机都有自己的 nginx.conf,我包括我的全局 nginx.conf。

在我目前无法正常工作的特定虚拟主机的配置文件中,配置块如下所示:

server{
    listen 80;
    server_name www.foo.com;
    expires     1M;
    access_log  /srv/www/foo/logs/acces.log;
    error_log   /srv/www/foo/logs/error.log;

    error_page 404 /404.html;

    location / {
        root    /srv/www/foo/public_html;
        index   index.html;
        rewrite ^/(.*)/$ /$1 permanent;
        try_files "${uri}.html" $uri $uri/ =404;
    }

    location = /404.html {
        internal;
    }       
}
Run Code Online (Sandbox Code Playgroud)

404'ing 本身没问题,但是当返回 404 状态代码时,将显示默认的 nginx 404 页面,而不是位于站点根目录中的自定义页面 404.html。

我已经尝试通过文件系统和站点的 URI 绝对路径到错误页面,并且我已经尝试将 error_page 指令放在位置块中。这些都没有奏效。我怀疑问题出在我用来“美化”我的 URL 的重写和 try_files 组合中。

nginx virtualhost custom-errors

3
推荐指数
1
解决办法
7695
查看次数

customErrors="RemoteOnly" 在 Server 2008 中无法正常工作

在我全新的Windows Server 2008IIS7 上,似乎customErrors无法正常工作。

我们已经在我们的 Asp.Net 站点和应用程序的 web.config 中customErrors设置了RemoteOnly。然而,无论我们做什么,看起来我们的站点都像它设置的那样,On当远程连接到我们的服务器时,我们无法在我们的应用程序上看到任何详细的消息。

我不完全确定如何跟踪它被覆盖的位置,或者服务器的配置方式是否会使服务器认为请求是内部的?无论如何,这实际上如何正确解决?

任何帮助表示赞赏...

我们的网络管理员已将域添加到我们的主机文件中,以将应用程序定向到 IP 地址。

windows-server-2008 iis-7 web.config custom-errors

2
推荐指数
1
解决办法
3323
查看次数

捕获上游 (502) 错误并显示自定义错误页面

这个问题早就应该回答了,但尽管阅读了许多常见的答案,但我似乎无法弄清楚,有人可以指出为什么我的配置不起作用吗?

目标:当上游 server_api 关闭时(例如,其工作进程崩溃),我希望 nginx 显示我的自定义错误页面。

我的配置:

location @server {
    proxy_pass http://server_api;
    proxy_redirect off;
    ...

    proxy_intercept_errors on;
    error_page 502 /error-502.html;
}

error_page 502 /error-502.html;

location = /error-502.html {
    internal;
    root /srv/my-server/html;
}
Run Code Online (Sandbox Code Playgroud)

我的步骤:

  • 我已/srv/my-server/html/error-502.html准备好静态错误页面,与其他静态资产具有相同的权限和所有者。
  • 我已经停止了我的上游服务,并看到[error] 2359#0: *25 connect() failed (111: Connection refused) while connecting to upstream出现在日志中。
  • 现在我尝试让我的自定义错误页面显示 502 错误。
  • 我曾尝试error_page在两者或其中之一serverlocation块上进行设置。
  • 我试图error_pageproxy_intercept_errors onlocationserver块;

他们似乎都没有说服 nginx 显示我的错误页面。为什么不?我错过了什么?

nginx custom-errors

2
推荐指数
1
解决办法
1万
查看次数

应该为漂亮的错误页面提供正确的状态代码吗?

我注意到,比如说,goolge 的 404 页面返回 404 状态(http://www.google.com/404.html),而 github 的返回 200(https://github.com/404.html)。错误页面(甚至 503 等)是否应该始终使用正确的状态代码?或者前端服务器应该拦截它们并显示 200ed 错误页面?

http html custom-errors

0
推荐指数
1
解决办法
200
查看次数

反向代理不提供本地错误页面

我在 Windows Server 2008 R2 上有一个 Apache 2.4 服务器,用作反向代理。它一直运行良好,并为大约 15 个虚拟主机提供服务。每当主机出现故障时,我想显示一个网页,指示服务器暂时关闭。我将自定义错误文件放在 htdocs 文件夹中名为 errors 的文件夹中。我在 httpd.conf 文件中有以下指令:

ErrorDocument 500 /errors/default.html
ErrorDocument 502 /errors/default.html
ErrorDocument 503 /errors/default.html
ErrorDocument 504 /errors/default.html
ErrorDocument 400 /errors/default.html
ErrorDocument 404 /errors/default.html
ErrorDocument 408 /errors/default.html

<Directory "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/errors"> 
Order deny,allow 
Allow from all 
</Directory> 
Run Code Online (Sandbox Code Playgroud)

我关闭了一台代理服务器来测试错误页面,我看到以下内容:

服务不可用 由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。

此外,在尝试使用 ErrorDocument 处理请求时遇到 503 Service Unavailable 错误。

如果我使用文本错误消息,例如“服务器当前离线”,那么我确实会看到该文本显示。如果我引用外部 Web 服务器来提供页面,那么我会看到从该服务器提供的页面。几乎就好像 Apache 服务器只是代理请求,无法为本地错误页面提供服务。

我猜我需要添加或更改虚拟主机条目以允许 Apache 服务器提供本地页面(错误页面),但由于服务器仅由 DNS 中的 IP 引用,我不知道该怎么做(它是使用命名主机)。我只是假设错误页面将由 Apache 正确提供而无需额外配置(除了允许对包含错误页面的文件夹的权限并在 ErrorDocument 条目中引用它们)。

我错过了什么?自定义错误文档的设置看起来很简单,但我无法从代理本身提供它们。

reverse-proxy custom-errors apache-2.2

0
推荐指数
1
解决办法
3590
查看次数

Apache 自定义 404 页面未加载

我正在尝试为404我的 apache 服务器上的错误设置一个自定义错误页面。

这是我包含在 Virtualhost

<VirtualHost *:80>
   ErrorDocument 404 /var/www/html/mant.html
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是这个页面没有显示而是重定向到默认的 404 页面

笔记:

我已经重新启动了apache sudo service apache2 restart

我可以使用以下网址访问错误页面

<ip>/mant.html

html custom-errors apache-2.2

0
推荐指数
1
解决办法
6901
查看次数