Articles of http

Apache服务器和目标服务器之间的Apache代理HTTP CONNECT方法握手失败

Apache / 2.2.25(Win32)mod_ssl / 2.2.25 OpenSSL / 0.9.8y 我正在尝试使用Apache的HTTP CONNECT方法。 我正在testing它与两个不同的目标服务器。 它与一台服务器正常工作,但与另一台服务器失败。 以下是Wireshark跟踪,用于Apache服务器与失败的目标服务器之间的连接。 它看起来像Apache服务器发送警报之前,它使目标服务器有机会发送服务器你好。 为什么发生这种情况? Apache – >目标TCP 57070> https [SYN] Seq = 0 Win = 8192 Len = 0 MSS = 1460 WS = 256 SACK_PERM = 1 目的地 – > Apache TCP https> 57070 [SYN,ACK] Seq = 0 Ack = 1 Win = […]

HTTP代理GET请求中的“\ xc2:\ xc2”

最近我在HTTP服务器的access_log中遇到了类似这样的行(我把实际图像更改为“someimage.jpg” – 因为允许目录列表,所以可以直接浏览图像文件夹,以防你想用真实图像): GET http://www.hindu.com\xc2:\xc2/mp/2006/07/03/images/someimage.jpg HTTP/1.1" 400 313 "-" "webcollage/1.135a 用户代理似乎是webcollage ,这是一个工具来从网上随机图像装饰屏幕 – 但我想这是假的。 很明显,它试图使用HTTP服务器作为HTTP代理。 现在我想知道的是URL中的\xc2:\xc2部分。 没有这个部分,这将是一个有效的url。 使用该string,第一个\xc2将被解释为顶级域的一部分,而第二个将被解释为端口。 它没有发现任何与该string相关的漏洞的引用,但是通过Google的许多访问日志包含相似的行,没有任何解释。 任何想法在这里试过?

如何让Jetty将httpredirect到同一个端口上的https?

这个问题是相关的如何让Jettyredirect到HTTPS和Jetty 9 – redirectHTTP HTTPS,但没有在任何位置应答。 基本上,我们运行我们的应用程序在一些端口,说8085.我们一般使用HTTP来访问这个应用程序。 我们已经升级到现在需要HTTPS。 我们希望用户通过HTTP访问8085的用户通过HTTPSredirect到8085。 即http://host:8085 -> https://host:8085 我知道正常的过程是在不同的端口上运行HTTP和HTTPS,但是我们不打算运行HTTP。 这是我们的一些configuration,它不工作atm。 尝试尽可能的一切后,我无法让服务器响应http://host:8085 。 这是由于只有一个连接器(HTTP或HTTPS)能够一次侦听端口吗? 有没有其他方法可以做到这一点? 谢谢。 <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Get name="sessionHandler"> <Get name="sessionManager"> <Set name="usingCookies" type="boolean">true</Set> </Get> </Get> <Set name="securityHandler"> <New class="org.eclipse.jetty.security.ConstraintSecurityHandler"> <Call name="addConstraintMapping"> <Arg> <New class="org.eclipse.jetty.security.ConstraintMapping"> <Set name="pathSpec">/*</Set> <Set name="constraint"> <New class="org.eclipse.jetty.util.security.Constraint"> <!– 2 means CONFIDENTIAL. 1 means INTEGRITY –> <Set name="dataConstraint">2</Set> </New> […]

HTTP 503服务不可用。 IIS 8

在IIS中安装Helicon Zoo以在IIS上部署python django应用程序之后,我已经获得了其他应用程序,这些应用程序是在之前部署和运行的HTTP 503.日志提供了下一个信息(对于DefaultWebSite): 工作进程“100”中服务应用程序池“DefaultAppPool”的协议“http”的侦听器通道报告了侦听器通道故障。 数据字段包含错误编号。 其他应用程序给出相同的警告和错误。 请帮忙。 更新 :我已经卸载Helicon Zoo和Apache部署的网站,现在它完美的工作。

通过多个数据中心限制用户

我试图在nginx上实现一个节streamfunction,跨多个数据中心跨多个服务器共享。 我想知道什么是build设这个最好的做法。 例如,假设我有一个HTTP API运行在位于两个不同数据中心的两个服务器集群(负载均衡器后面)上。 我想通过他的api-key将开发人员压缩到每小时1000个请求。 开发人员已经构build了一个移动应用程序,这意味着取决于他的最终用户的位置,请求将由两个位置(最近的数据中心)服务器。 你将如何在这个特定的情况下执行限制?

POST请求正文未能到达PHP

我在Apache 2.2 / PHP 5.3和Apache 2.4 / PHP 5.4上看到了以下问题 我遇到了一个罕见的问题,POST请求(小于1k)到Web服务器似乎在到达PHP服务之前将被截断,PHP服务将作用于数据。 我自己还没有能够重现这个问题,所以我只是在从日志收集的证据上工作。 在每种情况下,我收到一个有效的非零内容长度头,但没有正文的请求。 我已经倾倒了关于呼叫代理的各种信息,我没有看到任何模式。 破碎的请求来自各种浏览器和源代码ips,对于任何给定的IP,我偶尔会看到很多有效的请求。 我试过使用pecl_http的getRequestBody()和file_get_contents(“php://input”),在这种情况下也不返回任何数据。 我也暂时启用了mod_dumpio,并且在违规交易的情况下,我看到一个条目试图缓冲请求主体: mod_dumpio: dumpio_in [readbytes-blocking] 288 readbytes 通常会跟随数据的实际缓冲,如: mod_dumpio: dumpio_in (data-HEAP): 288 bytes mod_dumpio: dumpio_in (data-HEAP): (the post data) 但是在遇到问题的情况下,我没有看到这些条目,在这个apache进程上有几秒钟的延迟,然后我看到几个更多的实例: mod_dumpio: dumpio_in [readbytes-blocking] 288 readbytes mod_dumpio: dumpio_in – 70014 混淆了这些重复的读取尝试,我看到一个PHP线程在格式错误的请求上执行并产生响应的证据。 从HTTP协议4.4看来,请求的主体必须与内容长度匹配,以使请求有效,所以我正在努力了解有问题的请求是如何将它提交给PHP的。 我还应该提到,这种情况下的内容types是作为application / x-www-form-urlencoded提供的,即使发送的数据是原始的json。 由于我直接从数据stream中读取数据,所以我不指望它与我的问题有关,但是值得一提。 我不想盲目地比较PHP中的内容长度和strlen($ content),但是我没有办法select如何进一步诊断问题了。 任何有关如何解决这种情况的帮助或收集更多有价值的debugging信息将不胜感激。

浏览器与类似命名的目录混淆?

这可能是完全无关紧要的,如果是的话,我很抱歉,但是这是关于服务器,让我感到困惑。 基本上,看似随意,图像加载错误。 这从来没有发生过,而且这是完全不可预知的,这使得诊断更加困难。 但是,偶尔浏览器(或服务器)混淆了发送哪个文件。 在最近的情况下,应该加载的图像是: /img/sprites/c/f/a.png 但是实际上加载的图像是: /img/sprites/f/c/a.png 然后浏览器caching这个图像,这是错误的,用户必须按Ctrl + F5才能正确加载图像。 我注意到,这似乎总是发生在一个类似的文件名称的精灵 – 在我的一个较老的项目,有时会发生这种情况: Should be: /img/sprites/p_m/123.png Actually : /img/sprites/p_ms/123.png 我最初的想法是mod_speling,但这个模块没有安装在我的服务器上。 这是你遇到过的吗? 有什么build议可能会导致这个问题,以及如何解决这个问题?

为什么这个HTTP请求被截断?

由于HTTP请求被截断,我们得到了一个页面出现错误的用户。 据我们所知,这只是一个用户(尽pipe其他用户可能没有报告过)。 这是我们主要的JS文件,包含在网站的所有页面(无论如何都包含在.NET中)。 这似乎适用于其他人。 用户在IE和Chrome中都出现错误。 用户的浏览器报告了这个错误: 得到 http://fx.tourfactory.com/Bundles/Main.js?v=T5fF2ByrBfGogVek9EJ5vU_6zLwP4KyZ1erWAx6slWc1 net :: ERR_CONTENT_LENGTH_MISMATCH 1193174:1174 我们在用户的机器上运行了Fiddler,并给出了这个消息: 内容长度不匹配:响应标题指示141,192个字节,但服务器发送98,816个字节。 这是来自用户机器的请求和来自我的机器的类似请求的Fiddler saz文件: MainJsTruncated.saz 。 出于某种原因,用户的机器只是获取文件的第一部分,然后停止。 这在过去的几周里一直非常一致(这是我们一直试图弄清楚这个问题的时间)。 我们确实从用户的机器上拽了一些恶意软件,但这似乎没有帮助(其他人正在帮助用户,所以我没有关于此的任何细节)。 我不认为它是服务器,因为这是我们知道的唯一情况,我们有成千上万的常规用户,但是如果它很重要,我们使用运行ASP.Net 4.5的IIS 7.5并使用捆绑function来生成Main。 js文件。 v = XXX是文件更新时绑定pipe理浏览器caching的方式; 它是文件内容的散列。 任何帮助理解这可能是值得赞赏的。

Nginx,server_name定位尾随“。”将不会redirect

当你input“dev1.example.com”。 进入你的浏览器,或者你用HTTP客户端请求该主机,我希望它redirect到“dev1.example.com”。 我试图用下面的服务器块来做到这一点: server { listen 80; server_name dev1.example.com.; add_header Pragma no-cache; add_header Expires "Sat, 01 Jan 2000 00:00:00 GMT"; add_header Cache-Control "private, no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0"; return 301 http://dev1.example.com$request_uri; } 但是,似乎没有任何事情发生。 我试图清除我的DNSparsing器caching,清除我自己的浏览器的DNScaching,我甚至用curl请求URL。 我所要求的url是“dev1.example.com”。 我希望它redirect到“dev1.example.com”。

Nginx的configuration,以防止非浏览器对域名/ IP的请求

最近在一个服务器上安装了django 1.6,这个服务器托pipe了几个基于django的站点,我收到了很多“ERROR:Invalid HTTP_HOST header”的错误。 这是一个已知的“function” 。 问题是请求是从非浏览器触发错误,但不是按照nginxconfiguration(Nginx 1.6.0)转发。 例如,我已经设置了一个默认的服务器(这也是第一个在configuration文件中): server { listen 80 default_server; location / { return 403 "Forbidden"; } } 这适用于浏览器(当我testing它),但是,不知何故,这是被随机机器人绕过(和洪水我的电子邮件)。 例如,请求IP地址或autodiscover.mydomain.com (可能是一个outlook/交换的东西?) 我也试过这个答案 ,但无济于事,因为他们正在绕过默认configuration。 有没有办法阻止这种types的访问?