标签: http-status-code

HAProxy 发送 503 HTTP 代码时如何使用自定义 503 错误文档?

当后端服务器(后端)发送 HTTP 503 代码时,我希望 haproxy 使用它自己的 503 文档页面。是否可以?

见过类似“监控失败”的情况,但不知道如何将其添加到前端。

haproxy http-status-code

22
推荐指数
3
解决办法
3万
查看次数

如何配置nginx在限速时返回429 http代码?

在节流/速率限制时,如何配置 nginx 以返回 http 状态代码 429(请求过多)而不是默认的 503(服务不可用)?

仅供参考,我使用 nginx 作为 HttpLimitReqModule 的反向代理。429 状态代码的草案规范是RFC6585

stackexchanged上的这个(封闭)问题表明可以使用error_page指令。不过,我希望返回一个429是否真的有一个服务器的问题(而不是客户打我们太多),服务器应该返回503服务不可用。

有什么建议?

nginx http-status-code

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

http 代码 206(部分内容)的真正含义是什么?

我正在构建一个页面(使用 video.js,如果重要的话)可以容纳相当多视频的播放器——单击图像缩略图上的按钮,一个模式播放器打开,播放视频。工作正常; 没什么大不了。我的服务器是 Apache 2.2.15,fwiw。

问题:当我查看服务器日志时,我看到每个视频的条目的 HTTP 代码为 206(部分内容),例如:

GET /videos/a_video.mp4 HTTP/1.1" 206 1130496 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11"
Run Code Online (Sandbox Code Playgroud)

我不确定这些条目的确切含义。当这个页面加载时,1.1 MB 的内容是否真的通过网络推送到客户端,或者这只是当/如果用户真正请求文件时客户端打算使用的信息?将所有这些东西转储到用户/客户端对某人的带宽(更不用说我的站点)来说是一件非常吝啬的事情,尤其是在移动连接上。(基于一些额外的日志分析,看起来这些位真的被推送了,但是与其他更有知识的人一起检查这肯定是正确的做法......)

http http-status-code apache-2.2

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

如何使用 Nagios 检查安全网站的 HTTP 响应代码?

我想为我的安全网站创建一个 nagios 检查。所有检查需要做的就是使用我通过脚本的登录详细信息登录到该站点。

有没有人知道允许我这样做的插件或脚本?

我曾尝试使用check_http,但即使网站被重定向到错误页面,我也能成功。

website ssl nagios http-status-code

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

使用 HTTP 状态 308 永久重定向是否安全?

在服务器响应中使用 HTTP 状态代码308 永久重定向建议)是否安全?301 Moved Permanently 的问题在于它只适用于 GET 请求(公平地说:POST 将转换为 GET 这不是一个选项)。

状态代码在“RFC 时间”非常新,所以你有什么建议?

如果浏览器不知道 308,它会怎么做?它会找到位置并执行 302 吗?

http http-status-code

11
推荐指数
2
解决办法
8253
查看次数

HTTP 中的 301 和 302 有什么区别?

我看到所有类似网站使用的 tinyurl 302

但有什么区别?似乎两者都为我工作

http redirect http-status-code

9
推荐指数
1
解决办法
4267
查看次数

使用 nginx 负载平衡服务器重复 POST 请求(状态 499)

双重上传

自从我们从一个简单的 Apache 实例转向负载平衡环境以来,有时会出现 POST 请求重复的问题。我们正在运行 nginx 作为反向代理。静态内容由 nginx 本身提供,动态内容由两个 Apache 后端提供。

我已经检查过这不是接口/用户错误。一个小例子:简单的图片上传会导致图片上传两次。请求/POST 不会通过双击或用户失败发送两次。我没有发现任何证据表明浏览器发送了两次请求,所以我怀疑是在服务器端。(请注意,这只是怀疑。)大多数这些请求是内部的,这意味着它们来自员工,因此我可以验证它们是如何产生的。

我能找到的唯一“错误”是 nginx499在这些情况下会记录错误。但是,我不确定这是问题的原因还是只是问题的(副作用)。(我知道 499 不是默认的 http 状态,它是 nginx 状态,意思是“客户端已关闭连接”)

要求

重复的 POST 请求几乎是所有可能需要一段时间的请求。我在这里作为示例展示的是一个简单的图像上传,但脚本在后台执行一些操作(图像必须转换为不同的格式/大小,并且应该分发到两个服务器等)。

日志

一个例子是上传图片。nginx 将记录一个“499”和一个 200 请求,但 Apache 正在接收(并处理!)两个请求。

阿帕奇

[17:17:37 +0200] "POST ***URL** HTTP/1. 0" 200 9045   
[17:17:47 +0200] "POST ***URL** HTTP/1. 0" 200 20687
Run Code Online (Sandbox Code Playgroud)

nginx

[17:17:47 +0200] "POST ***URL** HTTP/1.1" 499 0 
[17:17:52 +0200] "POST ***URL** HTTP/1.1" 200 5641
Run Code Online (Sandbox Code Playgroud)

怀疑

在我看来,更大/更慢的上传受到更多影响,所以我怀疑超时。我试图阅读 499 错误:结论似乎是“客户端关闭连接”。这可能是后台的情况,但我不确定这将如何意味着应该发出第二个请求,并且肯定不会发生“用户关闭浏览器”之类的事情。

目前,它似乎有助于分解较慢的 POST 请求(如果有多个事情要做,只需让用户选择 1 并为另一个选择第二次 POST),但这可能只是降低了它发生的机会。没有把握。

这显然是一个临时解决方案。如果超时,我需要找出在哪里并增加相应的数字,但我不确定为什么超时会导致这种行为:我怀疑是“好吧,出错了”消息,而不是重复。 …

nginx http-status-code apache-2.2

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

HTTP 状态代码表示主机标头损坏或丢失

是否有适用于通过 SNI 或 HTTP Host 标头发送错误主机名(或根本没有)的客户端的 HTTP 状态代码?

一个较旧的问题首先解决了此类请求如何以及为何发生,以及如何在 Apache 中从技术上处理它们。然而,它没有解决响应状态代码的选择问题。

过去,我实现了一个 HTTP 代理,它会发送状态代码 502 和一个 html 页面,解释为什么会产生错误消息。我使用 502 的理由是期望我看到它主要是由于配置错误,这意味着代理找不到合适的后端。实际上,仅仅看到完全虚假的主机名的频率要高得多。

是否有另一个状态代码更合适,更清楚地向客户端发出信号,表明此 IP 地址上的服务器无法识别通过 SNI 和/或主机标头发送的值?

http https http-headers sni http-status-code

6
推荐指数
1
解决办法
6658
查看次数

“一般错误”的最佳错误代码

我正在为我的网站创建自定义错误页面。我想要一个,如果有一个通用错误(无效的查询字符串、不正确的身份验证等)将被显示。这很容易,问题是,这会是什么错误代码?404未找到,403禁止。

这最好属于什么代码?

http-status-code

5
推荐指数
1
解决办法
2286
查看次数

为 5xx 和 4xx HTTP 状态代码禁用 IIS 7.5 服务器错误响应

有什么方法可以防止 IIS 自动覆盖返回 500 或 400 范围内的状态代码的 Web 应用程序的输出?

举个例子,在 ColdFusion 中,我可以创建以下页面:

<cfheader statuscode="500" statustext="Error">
Sorry, an error occurred.
Run Code Online (Sandbox Code Playgroud)

行为应该是我看到一个页面,上面写着“对不起,发生了错误”。并在标题中看到状态代码为 500。

相反,我看到:

Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Run Code Online (Sandbox Code Playgroud)

在可爱的 IIS 样式中。

我尝试删除 500 个自定义状态页面,但这只是导致:

The page cannot be displayed because an internal server error has occurred.
Run Code Online (Sandbox Code Playgroud)

没有任何可爱的造型。

看起来这种情况发生在任何返回不在 200 或 300 范围内的代码的页面上。

iis custom-errors http-status-code

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

nginx:如何禁用 ($http_status == 200) 的 access_log

有没有办法禁用access_log200 HTTP 响应代码?我尝试使用条件,但似乎块access_log中不允许使用指令if。我试过这个:

access_log /var/log/nginx/access_log;

if ($http_status == 200){
    access_log off;   # <---------
}
Run Code Online (Sandbox Code Playgroud)

但它无效

# nginx -t    
nginx: [emerg] "access_log" directive is not allowed here ...
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?

nginx http-status-code

4
推荐指数
1
解决办法
4890
查看次数

Nginx-总是返回403状态码

我试图让 Nginx 返回一个简单的网页,但总是带有 403 的 http 状态代码。出于某种原因,我无法让它工作。我在 /var/www/html/ 中有两个文件:

  • 索引.html
  • 照片.jpg

index.html 显示一些文本和 photo.jpg

这是我的 Nginx 配置:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                return 403;
         }

        error_page 404 /index.html;
        error_page 403 /index.html;

        location = /index.html {
                 allow all;
       }

        location = /photo.jpg {
                allow all;
        }
}
Run Code Online (Sandbox Code Playgroud)

使用此配置,index.html 和 photo.jpg 都以 200 的状态显示。如果我删除location这两个文件的块,它们都不会显示,但它们的状态为 403。我的问题是:如何我可以显示 html 文件和图像,但只返回 403 状态吗?我觉得我错过了一些简单的东西。

nginx http-status-code-403 http-status-code

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

为什么我的 404 返回 200 状态码?

不知道为什么,但我所有的错误页面都以 200 响应。这对我来说有点奇怪,页面存在但它们不应该有相应的状态代码吗?如何让 Nginx 使用 404 状态代码呈现我的 404 页面?

例如:

? curl -I http://example.com/404
HTTP/1.1 200 OK <<--------------------------- WTF! THIS SHOULD BE 404!!
Server: nginx/1.8.0
Date: Tue, 17 Apr 2018 02:24:04 GMT
Content-Type: text/html; charset=UTF-8
...
Run Code Online (Sandbox Code Playgroud)

这是我的配置的相关部分:

server {

listen 80 default_server;

server_name example.com;
root /var/www/example/static;
index index.html;

try_files $uri $uri/ $uri.html =404;

# error pages
error_page 400 =400 /400; # bad request
error_page 401 =401 /401; # unauthorized
error_page 403 =403 /403; # forbidden
error_page 404 =404 /404; # …
Run Code Online (Sandbox Code Playgroud)

http nginx http-status-code-404 http-status-code

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