首先是一些背景:我们有一个embedded式设备,可以将很多小事件上传到Web服务器。 分块编码用于发布此信息。 每个事件都作为一个单独的块发送,所以web服务器(node.js)可以立即对事件做出反应。 所有这一切都像一个魅力。 禁用服务器并在服务器上运行netcat会显示设备发送的内容: sudo nc -l 8080 POST /embedded_endpoint/ HTTP/1.1 Host: url.com User-Agent: spot/33-dirty Transfer-Encoding: chunked Accept: text/x-events Content-Type: text/x-events Cache-Control: no-cache 120 {"some","json message"} 232 {"other","json event"} 232 {"and a lot more","up to 150 messages per second!"} 0 现在我在我的networking服务器(版本1.6.0)上安装了nginx。 最后,我希望它处理SSL,我想处理加快正常的networkingstream量。 如果我现在启用nginx这个服务器configuration: server { listen 8080; location / { proxy_http_version 1.1; expires off; […]
我想通过HTTP下载一些备份(大小约为4..5Gb),并且奇怪IIS7不允许我这样做。 尝试似乎被封锁 – 有404页。 我应该在IISpipe理控制台中进行下载?
我们在Windows Server 2012上有这个Apache: Server version: Apache/2.4.9 (Win32) Apache Lounge VC10 Server built: Mar 17 2014 10:48:43 大多数情况下,它可以很好地工作,但是不时地(每周3-4次)随时停止在端口443上提供HTTPS,但是继续在端口80上提供HTTP服务。当HTTPS停止服务时,解决问题的唯一方法是重新启动Apache。 这似乎是与这里一样的问题: Apache停止响应http请求–HTT继续工作,除了在我们的情况下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: […]
我需要将所有传入的HTTPstream量redirect到弹性负载均衡器上的HTTPS。 我厌倦了使用Apache mod_rewrite: RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 利用负载均衡器添加的X-Forwarded-Proto头,该规则应该指示用户浏览器请求相同URL的HTTPS版本。 到目前为止它不工作(不发生redirect)。 我究竟做错了什么? 有一个更好的方法吗? 编辑: 这最终奏效了: RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
我想用“智能HTTP”的方法来设置一个Git服务器。 但是,我在使用Windows时遇到了困难,而且我是Apache的新手。 我的httpd.conf部分是: SetEnv GIT_PROJECT_ROOT "d:/repositories" SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ "C:/Program Files/Git/libexec/git-core/git-http-backend.exe" <VirtualHost 172.16.0.5:80> <LocationMatch "^/git/.*/git-receive-pack$"> AuthType Basic AuthName "Git Access" Require group committers </LocationMatch> </VirtualHost> 有人可以提供在Windows上使用git-http-backend来设置Git服务器的步骤吗?
我正在运行应用程序服务器,并稍后logging所有请求以进行分析。 昨天晚上我注意到的一个有趣的趋势是,我有一个来自得克萨斯州的访问者在FIOS与加利福尼亚州的bluecoat有相同的交通。 什么会导致stream量相同? 对于参观者提出的每一个要求,蓝色涂层都会在接到请求的几毫秒内完成。 如果是caching,为什么会有相同的请求? 它不会通过caching/代理在他们的最后,我只会看到代理请求? 我只是好奇,这是一个有趣的模式,显示DDoS攻击的相似之处,但资源less得多。 访问者在他们的电脑上是否有恶意软件? 任何其他的想法?
根据涓stream的手册页, http://linux.die.net/man/1/trickle我可以限制一个进程的下载速度,例如 trickle -u 10 -d 20 ncftp启动ncftp(1)限制其上传容量为10 KB / s,下载容量为20 KB / s。 我将如何去限制google-chrome或firefox与trickle ? 编辑:对于那些你问我为什么问这样一个明显的问题,我试过了 trickle -u 10 -d 20 firefox 我得到一个错误 trickle: Could not reach trickled, working independently: No such file or directory Firefox后打开,但绝对不是率限制…
我有一个REST风格的Web服务,它接受一个POST请求给没有实体的资源,例如一个空的POST请求。 默认的modsecurityconfiguration要求所有的POST请求都有一个Content-Length: # Require Content-Length to be provided with every POST request SecFilterSelective REQUEST_METHOD "^POST$" chain SecFilterSelective HTTP_Content-Length "^$" modsecurity控制台将此报告为PROTOCOL_VIOLATION / EVASION。 不过,在阅读HTTP / 1.1 RFC时 ,我并不认为这是真的。 一个服务器被允许要求Content-Length(返回400或411),但是我没有看到任何说服务器必须(或推荐它应该)以这种方式行事的事情。 这可能因浏览器而异,但是,在没有实体主体的情况下发出POST请求的Flash客户端不会发送请求标头。 当你“curl-XPOST …”的时候也不会curl。 由于这些原因,并且因为我认为modsecurity规则是对HTTP规范的误解,所以我正在考虑在我们的configuration中解决对POST请求的Content-Length头的需求。 有谁知道是否有一个具体的利用这个规则是为了解决? 众多谷歌search,我只发现这是股票modsecurityconfiguration的一部分的参考。
我在一个ADSL连接上有一个Linux服务器,我只是注意到有时候我能得到 Connecting to example.com|xxx.xxx.xxx.122|:80… connected. HTTP request sent, awaiting response… 当我使用wget或者像Firefox这样的浏览器。 在wget按CTRL-C的情况下,然后再次尝试“解决问题”,并在Firefox的情况下,重新加载页面也使页面加载。 当它发生时,它是随机的。 我曾尝试将DNS更改为Google的DNS,但我仍然遇到同样的问题。 题 我如何debugging这样的东西,所以我可以find问题的根源或者一个模式?
使用nginx,你如何为不同的用户代理服务不同的静态文件? 例如,如果当前用户正在使用iPhone,则应将其提供mobile_index.html ,而其他所有用户代理都应该提供browser_index.html 。 find解决scheme server { listen 80; root /var/www; set $mobile_request '0'; if ($http_user_agent ~ 'iPhone') { set $mobile_request '1'; } location =/ { if ($mobile_request = '1') { rewrite ^ /mobile_index.html; } if ($mobile_request = '0') { rewrite ^ /browser_index.html; } } }