标签: http

“连接过多”的正确 HTTP 状态是什么?

我正在开发一个 HTTP 服务器,它应该只允许每个用户有一定数量的连接。我如何优雅地告诉用户n不允许多个连接。我尝试n+1用 403回答th 请求,但显然这会杀死整个下载。(至少有DownThemAll!

http connection http-server

7
推荐指数
1
解决办法
7511
查看次数

Linux,简单的http代理

我有一台运行在数据中心的 linux 服务器,它有一些额外的带宽和资源。

我想设置一个代理服务,以便我可以通过它从家里路由我所有的 http/https 流量。我知道如何配置我的浏览器与代理交谈,我只是不知道如何设置它的服务器端。我还想进行身份验证,以便只有我可以使用它

linux http proxy

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

为什么 mod_security 需要 ACCEPT HTTP 标头字段?

经过一些调试,我发现 mod_security 的核心规则集会阻止没有(可选!)ACCEPT 标头字段的请求。

这是我在日志中找到的内容:

ModSecurity:警告。需要匹配“rx ^OPTIONS$”与“REQUEST_METHOD”。[文件“/etc/apache2/conf.d/modsecurity/modsecurity_crs_21_protocol_anomalies.conf”] [行“41”] [id“960015”] [msg“请求缺少接受头”] [严重性“关键”] [标签“ PROTOCOL_VIOLATION/MISSING_HEADER"] [主机名 "example.com"] [uri "/"] [unique_id "T4F5@H8AAQEAAFU6aPEAAAAL"]
ModSecurity:访问被拒绝,代码为 400(第 2 阶段)。需要匹配“rx ^OPTIONS$”与“REQUEST_METHOD”。[文件“/etc/apache2/conf.d/modsecurity/optional_rules/modsecurity_crs_21_protocol_anomalies.conf”] [行“41”] [id“960015”] [msg“请求缺少接受头”] [严重性“

为什么需要这个标题?我知道“大多数”客户发送这些,但为什么他们的缺席被视为安全威胁?

http mod-security apache-2.2

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

Apache 随机停止提供 HTTPS,但 HTTP 工作正常

我们在 Windows Server 2012 上有这个 Apache:

Server version: Apache/2.4.9 (Win32) Apache Lounge VC10 Server built: Mar 17 2014 10:48:43

大多数情况下,它运行良好,但有时(随机,每周 cca 3-4 次),它停止在端口 443 上提供 HTTPS,但继续在端口 80 上提供 HTTP。当它停止提供 HTTPS 时,解决问题的唯一方法是重新启动 Apache。

这似乎与这里的问题完全相同:Apache 停止响应 http 请求——https 继续工作,除了在我们的例子中是 HTTPS 停止工作,而 HTTP 是一直工作的那个。

我们启用了 trace6 级别的详细信息,以获取有关正在发生的事情的一些好的信息。但是,日志是空的:

...
[Sat Mar 21 07:51:50.577373 2015] [ssl:debug] [pid 3356:tid 2540] ssl_engine_io.c(999): [client ...:16529] AH02001: Connection closed to child 137 with standard shutdown (server ...:443)
[Sat Mar 21 07:54:21.936742 2015] [ssl:info] [pid 4760:tid 432] AH01914: …
Run Code Online (Sandbox Code Playgroud)

http https not-responding windows-server-2012 apache-2.4

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

wget 接收文件并挂起

我试图解决奇怪的问题 - wget 获取文件,将其保存到磁盘并挂起。以下是详细信息:

wget --server-response --ca-directory=/etc/ssl/certs --no-dns-cache -T 1 --read-timeout=1 --header="Connection: close" https://api.vk.com/method/users.get?uids=1&fields=first_name,last_name,photo,photo_big
Run Code Online (Sandbox Code Playgroud)

详细日志:

Setting --server-response (serverresponse) to 1
Setting --ca-directory (cadirectory) to /etc/ssl/certs
Setting --dns-cache (dnscache) to 0
Setting --timeout (timeout) to 1
Setting --read-timeout (readtimeout) to 1
Setting --header (header) to Connection: close
DEBUG output created by Wget 1.11.4 on linux-gnu.

--2015-05-06 10:44:04--  https://api.vk.com/method/users.get?uids=1
Resolving api.vk.com... 87.240.131.117, 87.240.131.118, 87.240.131.119, ...
Connecting to api.vk.com|87.240.131.117|:443... connected.
Created socket 3.
Releasing 0x0000000001b6d5e0 (new refcount 0).
Deleting unused 0x0000000001b6d5e0.
Initiating SSL …
Run Code Online (Sandbox Code Playgroud)

http wget

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

yum repo 响应 [Errno 14] HTTP 错误 403 - 禁止

我正在尝试设置一个 YUM 存储库,其中包含我们每晚 Jenkins 构建的一些 RPM 包。

YUM 存储库位于 Jenkins 服务器的存储库文件夹中[path to repo]/jenkins-nightly-build/[release name]-repo。在所有作业完成后,它们被放置在 repo 中。最后,更新存储库元数据。

但是,当我尝试更新另一台机器时,存储库以 [Errno 14] HTTP Error 403 - Forbidden.

这是驻留在客户端计算机上的 .repo 文件:

[jenkins-nightly]
name=jenkins-nightly
baseurl=http://[hostname]/jenkins-nightly-build/[release name]-repo
gpgcheck=0
enabled=1
Run Code Online (Sandbox Code Playgroud)

如您所见,.repo 文件非常简单。我已经尝试过yum clean all,并且yum repolist确实打印了适当的 repo。打印所有预期的包,并在yum update调用时尝试下载。由于某种原因,客户端没有任何访问权限。

我需要编辑其他一些配置文件吗?为 Jenkins 安装的 Apache 会干扰 YUM 存储库吗?请帮忙!!!如果需要更多信息,请告诉我。

http redhat yum rpm http-status-code-403

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

配置 nginx 以发送带有 HTTP 正文的页眉和页脚的响应

我有一个文件夹中的备忘录集合 一个/memos/items/备忘录用于包含 HTML 标题部分的 SSI 包含语句,直到并包括开头<body>,然后是备忘录内容的 HTML 代码,最后是进一步的 SSI 包括包含关闭 HTML 文档的代码的页脚的语句,如下所示:

<!--# include file="/memos/header.html" -->
Dies ist ein <i>Testeintrag</i>.
<blockquote>
Man soll den Tag
nicht vor dem Abend loben
</blockquote>
<!--# include file="/memos/footer.html" -->
Run Code Online (Sandbox Code Playgroud)

这很有效,但我不喜欢单项文件中的 SSI 语句。我更愿意指示 nginx 自动提供页眉和页脚,配置类似于

location ~ /memos/[\w-]+$ {
  sendfile /memos/before.html;
  sendfile $request_filename;
  sendfile /memos/after.html;
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?是否有一个 nginx 模块提供了一个sendfile像描述的那样工作的指令?

优点是:

  • 包含项目的文件夹仅包含纯内容,没有附加指令。因此,当提供“搜索”功能时,可以grep编辑文件夹。
  • 避免了冗余(页眉和页脚的“包含”指令只存在一次,而不是在每个重复的文件中。

编辑 (2016/07/01)

同时,我通过简单地改变视角,找到了具有上述优点的 SSI 解决方案(即仅提供项目文件内容,没有 ssi 标签):而不是在每个单独的项目文件中包含页眉和页脚,我包括单个主模板中的项目文件。

受到nginx 站点上的提议的启发;我配置

 location /memos/ {

    ssi …
Run Code Online (Sandbox Code Playgroud)

http nginx

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

11:资源暂时不可用,连接upstream + Bad Gateway (Nginx)

对于我的新服务器上的所有站点,似乎一旦nginx提供了一定数量的流量,它就会开始提供“错误 502 - 错误网关! ”。

让我们来看看一些日志和配置...

  • 操作系统:Ubuntu 16.04(服务器)

  • 硬件:6核,12GB内存

  • 面板:ISPConfig

  • nginx 版本:1.10.3

来自/var/www/example/log/error.log

11: Resource temporarily unavailable) while connecting to upstream, client: 216.170.123.179, server: example.com, request: "GET /KHFxygk9 HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"
2017/08/10 06:01:06 [error] 15408#15408: *31372 connect() to unix:/var/lib/php7.0-fpm/web3.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.3.114.12, server: example.com, request: "GET /jiPNQjwp HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件:

  • /etc/php/7.0/fpm/pool.d/www.conf

[www]    
user = …
Run Code Online (Sandbox Code Playgroud)

linux http nginx php-fpm php7

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

DNS 无法解析 IP

我希望 app.dotaquiz.org 可以使用我的网络服务 (185.156.179.139)。所以我已经注册了域名。我还创建了一个 A 记录 (app-A-185.156.179.139)。

http://185.156.179.139/users/1 的GET 请求给出 OK-200。

http://app.dotaquiz.org/users/1 的GET 请求给出 404。

我缺少什么?

domain-name-system http

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

如何在 Apache 中禁用 HTTP 1.0 协议?

HTTP 1.0 存在与会话劫持相关的安全弱点。有没有办法通过使用mod_rewrite模块来禁用它?

http

6
推荐指数
2
解决办法
4278
查看次数