我想知道是否有办法强制一个块设备绕过Linux缓冲区caching(即直接IO),并将请求直接传递给底层。 我知道可以使用O_DIRECT标志打开文件来实现这一点,但我的程序不是块设备的用户,文件系统是。 到目前为止,我还没有任何运气告诉各种FS使用直接IO。 总之,我需要裸设备的function,而不使用原始设备(因为它们在我的发行版,Fedora中已被弃用)。 如果这很重要,我的块设备是一个networking块设备。 任何帮助,将不胜感激。
对于正常的公共页面,我做了一个 proxy_cache assets; proxy_cache_key backend$request_uri; proxy_cache_valid 200 302 100d; proxy_cache_valid 404 1m; proxy_cache_use_stale error timeout invalid_header; caching内容。 是否有per user或基于IP的caching机制,将允许我caching内容。 我的主要目的是为了防止快速刷新,用户在短时间内(例如30秒或一分钟内)caching页面。 我了解NAT的含义。 但是我很好。
我正在用nginx + thin与静态内容caching托piperedmine 问题是:是或不是由浏览器caching? nginxcachingconfiguration: location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { # Some basic cache-control for static files to be sent to the browser expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } 这里是响应标题: Request URL:http://redmine/javascripts/prototype.js?1251746896 Request Method:GET Status Code:304 Not Modified Request Headers Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-GB,en-US;q=0.8,en;q=0.6 Cache-Control:max-age=0 Connection:keep-alive Cookie: <hiden> Host:redmine If-Modified-Since:Mon, 31 […]
我是一个新的系统和networkingpipe理员。 我的经验已经在系统和服务器的硬件和软件上,networking部分对我来说很新颖。 我熟悉将数字插入networkingconfiguration,但如果你问我有关子网或数据包丢失(;),你会看到这真的失去了我的脸。 我在学。 这是我的问题: 在接pipe这些控制权之前的大约两个月之前,以前的networkingpipe理员报告他们在下载大文件时遇到了问题。 那么,不是真正的大文件,只是大的文件,更令人沮丧。 现在我正在做下载(从随机驱动程序到最新的发行版,从我们的Technet订阅和许可协议的SP,到我们各个部门的多GB工程软件包),我必须“亲身”下载,让我连续几个小时一直呆在我的办公桌上。 下载将开始很好,并得到一些随机点从几个K到一对夫妇G下载将失速,如果我不暂停,并重新启动下载失败之前,失败。 有时暂停/重新启动立即工作,下载提速并在循环重复之前进行一点。 有时我必须经过几次暂停/重启循环才能开始下载实际下载。 networking和ISP的详细信息: 由我们的ISP服务的光纤互联网连接(我们的本地城市是我们的ISP)。 下载速度通常在1.1Mbps左右,峰值高达1.6Mpbs。 有时在暂停/重启周期中,我们会看到速度低至几百Kbps,但几个周期后,它会再次加速。 来自不同主机的速度是相当一致的。 在我们的内部networking中没有代理,并且没有我知道阻止连接的防火墙。 我们使用Cisco 1811W作为我们的网关,但之前没有任何麻烦。 这个问题在9月左右首先被提到,在那个时候我们没有任何变化,我们可以把它归因于此。 我应该testing什么,检查等,以确定问题是在我们这边还是在ISP? 更新: 我正在看一个wireshark feed,过滤了一个大的下载的TCPstream,我现在用了几天的麻烦。 大多数交通框架被标记… 持续或非HTTPstream量 …我认为这只是后续的下载包。 然而,比较频繁(每3-20秒之间)以及与Firefox报告的下载速度中的任何下降几乎完全对应的是大部分帧被标记为… [TCP重传]持续或非HTTP通信 也有一些随机帧,通常分布在重传数据包的左右几十帧,标记为… [TCP上一段丢失]继续或非HTTPstream量 …和whadayaknow,下载只是通过3.2GB文件的一半失败。 最后的帧是一个TCP前一段丢失帧。 这是我不得不暂停下载并尝试重新启动之后立即排队立即失败。 下载的最后一帧是http [ACK],然后是http [FIN,ACK] ,我相信这表明了一个“优雅”的TCP连接closures。 我没有看到任何其他指示中介的中断。 更新2 在下载的所有浏览器和应用程序中都会出现该问题,并且在允许暂停/重新启动的所有应用程序中,暂停/重新启动function的工作时间为99%。 特定的应用程序和浏览器我可以很容易地在Firefox(当前版本),IE(9),iTunes(下载iOS设备的应用程序和更新)中进行复制。 我不确定这些全部是否在下载中使用相同的function作为暂停/恢复function。 从服务器的iTunes下载都允许重新启动(iOS更新文件除外),所以无论多久,我暂停下载。 我从MS(MS,PTC,Solidworks,AutoDesk)下载大文件的大多数站点不支持恢复停止/取消的下载(MS不过只能从那里的基于Java的下载pipe理器),所以我只能暂停大约15秒在尝试恢复之后,下载之前将立即失败。 更新3 使用mturoute(谢谢汤姆H),我发现一致的路由最大MTU是在分片之前1500个字节,并且path运载ICMP有效载荷与碎片从头到尾没有许多问题,包括跳跃通过我的ISPs设备。 所以这个问题似乎不是碎片或不兼容的MTU设置。 ICMP也没有被我的ISP封锁,也不是BitTorrent,虽然我没有使用BT来下载这些文件。 更新4 因此,从Wireshark日志来看,我需要看看如何确定重新传输和上一段丢失帧的原因。 我将如何隔离这些可能的来源?
你好,对于serverfault用户, 我想请问一个人帮我configurationMgento清漆。 使用命令: varnishtop -i TxHeader -I Cookie ,以下信息显示: TxHeader Cookie: frontend=965b5…(*lots of numbers); adminhtml=3ae65…(*lots of numbers); EXTERNAL_NO_CACHE=1 “(*很多数字)”只是我添加到信息 如何使用Varnish VCLconfiguration来删除这个cookie来caching页面? 感谢在这种情况下的任何帮助!,将不胜感激! 托马斯
我有几个关于caching网站的问题,因为我之前没有尝试caching网站。 首先是如何caching一个网站,以便客户端浏览网站时加载速度更快。 例如,我有许多图像在我的CSS风格,我该如何caching? 从我之前读过的PHPcaching是通过<head>标签完成的,也可以在.htaccess完成caching(很高兴我正在使用htaccess ^ _ ^)。 我在我的标题中添加了这个标签 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="expires" content="-1"> <meta http-equiv="pragma" content="no-cache">//or content="cache"??? 这也是我的htaccess里面: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> […]
免责声明:我发布了这个在Stackoverflow以及我认为它可能有适合更好的。 如果有人想在那里回答的话,下面的问题链接如下。 – 我有以下几点: domain.com – 很多不需要SSL的URL(我想用varnish来caching所有这些)domain.com/shop – 所有的URL都应该使用SSL(不需要清漆,我想在端口上听443) 我基本上是寻找configuration服务器来caching所有不需要SSL的uris的最佳方法,因为这必须在端口443上运行。所有端口8080请求都将变为Varnish并正常工作。 另外我想确保和非ssl请求被发送到domain.com(包括www请求)。 我之前做过这个,但由于某种原因,等式中的SSL使事情变得复杂。 我的configuration如下: `server { listen 8080; server_name domain.com; root /var/www/domain.com/public_html; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/dev/shm/php-fpm-www.sock; # Tried using to […]
我们有以下url我们想代理caching: file.php?parameter=one¶mater2=two&r=EPOCHTIMESTAMP 查询string参数“参数”因请求而异。 “paramater2”也是如此。 查询string参数r是我们用来确保客户端不提供caching(客户端)内容的时间戳。 又名“caching克星”。 是的,我们也使用所有合适的不cachingh头。 现在,我们想通过nginx代理caching中的一些请求。 是否有可能指示nginx忽略r查询string参数,但使用所有其他设置caching键的条目? 如果我们不能忽略参数r,那么nginx代理caching将是无用的,因为每个caching密钥将是唯一的。 谢谢。
我们公司使用这些设置(不要问我为什么) – 对于每个请求,他们都希望从服务器获得新的请求。 这是一个只使用IE的Intranet系统。 他们将其定义在: 我们在iis7也有Windows身份validationNTLM 。 我有2个问题,请。 问题#1) 当浏览器发出请求(css)时: (暂时留下401响应 – 这是ntlm的工作原理) 他正在请求if-modified-since标题。 他为什么要添加这个头文件? 我如何configuration它? 为什么他不使用IE中的设置,并尝试每次都下载 – 正如我在第一张图片中显示的那样? 问题2) ( ntlm谈判之后 )的回应是: Not-modified响应是304头。 我假设它是因为我们发送了带有if-modified-since标头的请求。 但有一个问题。 他实际上是告诉我从我的caching中下载。 但是我在IE设置中明确告诉他 – 不要从caching中加载。 我在这里错过了什么? 非常感谢。
我使用nginx作为一个反向代理与Apache后端处理一些PHP文件。 这些文件返回正确的过期头文件,proxy_cache做了很好的caching,但是我注意到caching内容在每次刷新时都会返回200,因为在caching文件上返回304可能更有效。 有问题的文件是由PHP生成的。 因为他们已经被美化,所以url中没有.php。 任何想法为什么Nginx可能不会返回304重复访问caching的PHP输出? 澄清:它使用proxy_cache来cachingdynamicPHP页面(不是由PHP生成的静态html页面)。 我在时间+ 24小时的PHP文件中设置过期标题。 考虑到这一点,我希望nginx能够在24小时内返回304caching版本。