Articles of http

使用切诺基而不是nginx在光油前获得HTTP 1.1优化?

我们一直在运行nginx – > uWSGI,现在我们正在评估将Varnish作为nginx和uWSGI之间的caching层(类似于http://www.heroku.com/how/architecture )。 但是,nginx只支持HTTP 1.0,所以它将不得不为每个请求创build与Varnish的新连接。 许多人build议在Varnish前面运行nginx,但是使用Cherokee之类的东西不是更有意义,因为它支持后面的HTTP 1.1,所以消除了HTTP连接的开销?

.htaccess将http重写为https循环中的结果

在运行清漆的apache 2.2服务器上,我正在尝试将http – >redirect到整个Drupal Commons( http://commons.acquia.com/ )站点的https。 由于清漆caching一些redirect(R = 301,但不是R = 302,我想),我首先得到了我的redirect工作:8080,这不是由清漆服务。 下面的.htaccess代码成功地将http:// foo.example.com:8080redirect到https:// foo.example.com。 (适用于Chrome,FF和Safari) # RewriteBase / ### Standard Drupal7 .htaccess above here ### # SSL REWRITES RewriteCond %{SERVER_PORT} ^8080$ RewriteRule ^(.*)$ https://foo.example.com/$1 [NC,R=302,L] ### Standard Drupal7 .htaccess below here ### # Rewrite URLs of the form 'x' to the form 'index.php?q=x'. RewriteCond […]

如何使Apache返回400错误的自定义页面格式错误的主机头?

我想我所要求的有点难以理解,所以我正在努力简化它。 我需要我的服务器有一个自定义的400错误页面,当它收到一个格式错误的主机头的请求。 我最想要的是ErrorDocument 400 \somepage.php 我可以通过访问一个页面,如http:\\myserver\bla%bla ,生成400错误,这将会去我的脚本罚款。 同样,我可以将\somepage.php部分更改为Test text ,Apache将返回该文本。 但是,如果400错误是由于主机头格式错误造成的,它将使用文本而不是网页。 任何人都可以解释这一点,并给我一个工作的解决scheme之前,我把我所有的头发? (已经失去了很多这个!)。

Apache不调用智能HTTP CGI

我正在build立一个git–http-backend和Smart HTTP的git服务器,但是Apache似乎没有调用Smart HTTP CGI: $ curl http://localhost/repo/myproject.git/info/refs?service=git-receive-pack 2ddf56592a0f55456b8c42dc9f2cb9289f083f53 refs/heads/1.0.x 55079bb13d9af8a9164ad0d24b654cbfe119bc7e refs/heads/master 这是我的configuration: <VirtualHost *:8000> ServerName localhost DocumentRoot /opt/local/apache2/htdocs/repo SetEnv GIT_PROJECT_ROOT /opt/local/apache2/htdocs/repo SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /repo/ /usr/libexec/git-core/git-http-backend/ AliasMatch ^/repo/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /opt/local/apache2/htdocs/repo/$1 AliasMatch ^/repo/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /opt/local/apache2/htdocs/repo/$1 ScriptAliasMatch \ "(?x)^/repo/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /usr/libexec/git-core/git-http-backend/$1 <Directory "/usr/libexec/git-core/"> Options […]

在IIS的“失败请求跟踪”中未跟踪HTTP 500错误

我在IIS7中创build了一个新的站点,在该站点下面添加了一个新的应用程序。 当尝试使用位于此新应用程序下方的ASP.NET Web服务时,出现HTTP 500内部服务器错误。 我查看了事件日志,IIS日志,并试图设置“失败的请求跟踪”,但似乎没有任何跟踪。 我有它设置来检查所有内容,详细的错误logging和HTTP错误范围从400-600。 但是在FailedReqLogFiles文件夹下没有任何logging。 在这个IISconfiguration中的其他网站似乎跟踪失败的请求就好了。 我可以看到在这个站点的IIS日志中logging了HTTP GET请求,但是它们显然不是非常有用,因为它们只是显示返回500错误的请求。 我已经检查了资源pipe理器中网站文件夹的权限,并且确保匿名访问已启用,并且应用程序池标识也可以访问文件夹的内容。 有任何想法吗? 我给了关于这个问题的足够的信息吗? 预先感谢您提供的任何帮助或build议。

使用基本身份validation响应HTTP OPTIONS

我们有一个网站托pipeOffice文件背后的IIS6基本身份validation。 IE有一个用于基本authentication的authentication令牌,用于下载文件。 用户单击“打开”,然后Microsoft Office协议发现在文件所服务的目录上执行HTTP OPTIONS请求。 但是,Office不具有IE执行的身份validation令牌,因此它会再次提示input凭据 。 点击取消将显示您在Office中的文件。 由于我们不是Sharepoint类应用程序,而且我们也没有对OPTIONS进行响应的方式,所以我想用OPTIONS方法回复所有的请求(这是与“Microsoft Office Protocol Discovery”的用户代理“)像一个空的200,如RFC 2616所述: 如果没有响应主体,响应必须包含一个字段值为“0”的内容长度字段。 我倾向于使用200响应的ISAPI筛选器 – 在基本身份validation发生之前。 Windows身份validation或匿名访问不是选项。 有什么替代品我失踪?

Squid,身份validation,Outlook Anywhere,Windows 7和HTTP 1.1 = NIGHTMARE

我在Samba 3.5.4上运行Linux CentOS 5.4上的Squid代理(最新版本,3.1.4),以便为域用户提供authentication的Web访问; 一切工作正常,甚至Windows 7客户端都完全支持。 对于域用户来说,身份validation是透明的,而对于非域用户则是明确要求的,并且如果用户可以提供有效的域凭证,则它是有效的。 一切都很好,很好。 然后,Outlook Anywhere进入,痛苦和痛苦随之而来。 当Outlook(不论是2007年还是2010年,无所谓)在Windows XP客户端上运行时,它通过Squid代理优雅地连接到远程Exchange服务器。 当它在Windows 7上运行时,它不会。 如果authentication需求从代理中解除,那么所有的工作都在Windows 7上运行,所以这个问题显然与使用Squid的NTLMauthentication有关。 深入挖掘(WireShark),我发现Outlook Anywhere在Windows 7上运行时使用HTTP 1.1,而在Windows XP上使用HTTP 1.0。 而且,即使在最新的版本中,Squid看起来仍然存在一些严重的问题, 尤其是在SSL和代理身份validation混淆的情况下。 在等待Squid完全正式支持HTTP 1.1(看起来这可能需要相当长的时间)的同时,我正在寻找以下解决scheme之一: 如果可能的话,让鱿鱼正确处理。 识别Outlook无处不在的连接,并让鱿鱼不需要validation他们。 但是这并不容易:在Windows XP和Windows 7上运行时,Outlook的行为也会有所不同,而在Windows XP上,Outlook发送一个非常好的用户代理string“MSRPC”,而在Windows 7上它不会发送任何(为什么? 为什么 ?!?)。 即使在Windows 7上运行,强制Outlook Anywhere也使用HTTP 1.0。不,这不像在Internet Explorer中取消select“使用HTTP 1.1”那么简单,看起来像Outlook忽略了该设置,并自行select使用哪种协议。 任何其他可行的解决scheme,不涉及到白名单特定的目标Exchange服务器,这是我试图避免的最后一个解决scheme。

浏览器caching是否需要Last-Modified HTTP标头?

当我在Apache中取消设置Last-Modified标头时( ETags也被禁用),Firefox(4.01)将不会caching任何文件,无论设置将来的Expires头还是启用Cache-Control头。 那么浏览器caching需要Last-Modified (和/或ETag )头文件吗? 从这里 : 如果响应中没有validation者(ETag或Last-Modified头),并且没有任何明确的新鲜度信息,则将被视为不可caching。 如果按照“新鲜度信息”的意思是“caching控制”或“过期”标题,Firefox应该被caching而没有Last-Modified标题。 编辑进一步的FIREFOX信息 请注意,不pipe是否设置了有效的高速cachingCache-Control ,都不会在没有Last-Modified标头的情况下尝试在Firefox 4.01的Apache 2.2服务的任何PHP文件上生成304(重新加载,新访问等)头, Expires头或两个头。 foo.php :这个文件的内容只是回应'Hello World'。 HTTP/1.1 200 OK Date: Mon, 06 Jun 2011 14:04:58 GMT Server: Apache Cache-Control: public, max-age=3600 Expires: Fri, 01 Jul 2011 21:23:55 GMT Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 1594 Keep-Alive: timeout=10, max=500 Connection: Keep-Alive Content-Type: text/html; charset=utf-8 编辑甚至更奇怪的火狐4.01的结果 […]

IIS中的基本HTTP身份validation

原谅我缺乏IIS的经验,但我有一个用户在托pipe服务器上运行与Plesk的IIS。 他使用受保护的文件夹,我正在寻找一种方法来: 允许他使用简单的用户名/密码组合来保护文件夹 将静态IP列入白名单,以便无需从该服务器授权即可访问该文件夹 它不必 – 也不会 – 是一个Plesk唯一的解决scheme。 如果有一种方法可以通过web.config来实现,那就更好了。 我基本上是寻找一个Apache的htaccess / htpasswd身份validation的IIS相当于:) 谢谢!

ELB后面的独angular兽,没有nginx

如果我了解Unicorn的权利(特别是他们的哲学文档 ),那么Unicorn似乎真的被devise成在像nginx这样的反向代理之后运行。 我的问题是:我可以从我的HTTP堆栈中删除nginx,考虑到我们顶部有一个ELB作为反向代理吗? 我在初始testing中没有发现任何问题,只是想知道有没有人在这方面有经验。