我使用Nginx作为caching代理服务器。 我在使用X-Accel-Expires和Cache-Control标头caching响应时遇到了问题。 我的上游返回一些标头为nginx的请求正文: […] X-Accel-Expires: 60 Cache-Control: no-cache […] 我的意图是,Nginx的caching响应60秒,但客户端将只获得caching控制:无caching头(所以他们不会caching在浏览器中的响应)。 但nginx不caching该响应。 Nginx荣幸Cache-Control头并忽略X-Accel-Expires头。 我认为X-Accel-Expires是Cache-Control的 “更强”,但它不是。 有什么方法可以改变吗? 我知道我可以使用: proxy_ignore_headers Cache-Control; 但我不能这样做,因为我没有来自上游服务器的每个响应中的X-Accel-Expires标头。 总结当我从上游返回thoose标题: X-Accel-Expires: 60 Cache-Control: no-cache 我想在nginxcaching中caching响应60秒,但返回给客户端caching控制:无caching 。 但是,当我回到这个: Cache-Control: max-age=90 (没有X-Accel-Expires头文件)我想在nginxcaching中caching响应60秒,然后返回给客户端Cache-Control:max-age = 90头文件。 这可能吗?
我有一个使用ssl-bumpcaching由Docker使用的SSL资源的Squid服务器设置,但是我有问题想要将它caching到Cloudfront的请求,例如: 1415056176.733 190419 172.17.0.40 TCP_MISS/200 221665373 GET https://dseasb33srnrn.cloudfront.net/images/8ca2483ec35c2a51b0a241eac48c40b1db6870be14d0507772a05a1bc565bf7e/layer? – PINNED/54.230.141.138 binary/octet-stream 1415055736.782 159755 172.17.0.9 TCP_MISS/200 221665364 GET https://dseasb33srnrn.cloudfront.net/images/8ca2483ec35c2a51b0a241eac48c40b1db6870be14d0507772a05a1bc565bf7e/layer? – PINNED/54.230.140.173 binary/octet-stream 我看到这可能是因为查询参数发送到Cloudfront(或返回的头文件),但是给定这个configuration是否有明确强制Squidcaching内容的方法? acl docker_image_layer url_regex .*/images/.*/layer request_header_access Accept-Encoding deny docker_image_layer refresh_pattern -i . 3600 80% 14400 由于Docker最初命中https://registry-1.docker.io/v1/images/XXX/layer但遇到redirect,是否可以cachingredirect的最终结果?
我已经从我的应用程序服务器设置了一个代理到一个专用的s3存储区来caching请求。 在s3拒绝我的下载请求(403禁止)时,我遇到了一些麻烦,经过一些实验,看起来禁用caching允许有效的请求通过。 但是代理的全部目的是作为一个caching。 我猜这个代理以某种方式改变了这个请求,但我不明白怎么做。 有没有人有任何洞察如何启用caching在Nginx中改变请求,如果有什么办法来超过这个? 这是相关的configuration。 http { proxy_cache_path /home/cache levels=1:2 keys_zone=S3_CACHE:10m inactive=24h max_size=500m; proxy_temp_path /home/cache/tmp; server { server_name my-cache-server.com; listen 80; proxy_cache S3_CACHE; location / { proxy_buffering on; proxy_pass http://MY_BUCKET.s3.amazonaws.com/; proxy_pass_request_headers on; } } } 如果我删除了行proxy_cache S3_CACHE;
我需要为我的问题select正确的技术。 我有一个主站点和一些远程站点在地理上分布的多站点环境。 主站点每天生成百万字节的数据(大约30%的数据每天完全重新生成) 将所有数据复制到远程站点是不切实际的 数据目前通过NFS共享,远程站点访问共享的速度很慢 远程站点上的用户通常非常使用共享上的小部分数据(几千兆字节) 远程站点上的用户在一天中倾向于使用相同的数据 访问是严格只读的 所以看起来很合理,就像在每个站点上cachingNFS代理那样 只有第一次访问共享文件的速度很慢 随后的访问速度要快得多,因为caching命中率预计会非常高 我能够使用FSCache,cachefilesd和“-o fsc”挂载NFS共享,在linux机器上configuration类似的caching,并取得了非常好的效果。 然而,当我试图configurationNFS服务器,将启用本地caching共享,然后重新导出它,我碰到一些问题。 快速谷歌search显示,NFS不是为这种用例devise的。 我想知道这个问题是否有更好的技术。 我对一些开放源代码的纯软件解决scheme很感兴趣(理想的是在NFS上工作,因为在这个设置中很难摆脱主要的NFS共享)。 任何build议,高度赞赏。
以下链接有一个Azurecaching性能计数器的列表: http : //msdn.microsoft.com/en-us/library/azure/hh914135.aspx#PerfCountersc2 我们感兴趣的是在专用caching工作者angular色上获得caching内存的利用率。 列表中有两个计数器 “\ Memory \ Available Mbytes” – 它已知这是系统内存“\ Azure Caching:Host \ Total Available Memory Bytes” – 没有很好的logging,这是可用于项目caching的内存或与系统内存相同的内存。 任何人都可以帮助我们呢? 是否有更好的计数器专用Azurecaching的可用性?
我正在计划一个NVA服务器系统(Nginx-Varnish-Apache),请求按照这个顺序进行路由。 Apache将服务WordPress CMS或类似的。 我想知道在哪里应用额外的重写规则(如添加自定义重写手动configuration)。 应该重写在Nginx端还是Apache端? 哪个更容易实现,哪个更好? 还是应该重写在光油? 正如我所看到的,所有重写都可以在Apache中完成,因为Varnish将按原样提供这些重写的请求,从而在提供页面之前降低处理(?)的需求。 我是对的,还是在请求页面清除(从Apache获取页面)之前重写呢? 这要求服务器实际检查并对每个请求进行重写。 但是这样所有的重写将是“即时的”,而不需要在Varnish清除caching。 例1: 我有一个WordPress的多站点与子域安装(子站点去foo.domain.com , bar.domain.com , baz.domain.com等)。 多站点根站点应该驻留在www.domain.com ,但实际的内容可以在domain.com (不需要www )。 WordPress本身处理子网站的子域映射(数据库表切换),但是无www到www重写应该手动完成。 在哪里重写呢? 例2: 我在后台有一个特定的模板,有时可能会被重写,有时候不会。 让我们说它的www.domain.com/offer/12345/?available=0 ,有时我们可能要重写URLredirect到一个模板www.domain.com/offers有关不可用的数据。 这个重写会来来去去,取决于网站是否有不可用的报价情况的内容。 在Varnish之前或之后,这种重写会更好吗? (我知道这个redirect应该在网站的内部逻辑中完成以实现自动化,但是为了这个例子,我们假设它应该被服务器自己重写)。
我有一个应用程序在IIS中通过ISAPI扩展运行,输出JSON文件基于inputURL(它与RESTful接口 – URL的格式为http://domain/path/to/resource.json )。 该应用程序工作正常,但我无法获得IIS输出caching为我生成的文件工作。 在我的web.config中有: <system.webServer> … <caching> <profiles> <add extension=".json" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="00:00:30" /> </profiles> </caching> </system.webServer> 我也试过使用*但是这也不起作用。 任何想法,为什么这是行不通的? 谢谢!
目标是让超过100个用户能够使用其caching域凭证login到脱机机器。 有什么办法可以覆盖限制吗? 我有任何其他选项来存储凭据? 操作系统:有问题的机器在Windows Active Directory上运行Windows 7。
我有包含caching清除string的URL。 我想重写这些URL而不使用caching清除string,然后将符合特定条件(如audio/video文件)的重写URL发送到PHP脚本。 例如 /style.1233333555.css => /style.css /video.3232474527.mp4 => /video.mp4 => /index.php 以下是我到目前为止: server { listen 80 default_server; server_name _; #force all traffic to be encrypted return 301 https://xyz.com$request_uri; } server { listen 443 ssl; server_name xyz.com; ssl on; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; ssl_certificate /etc/nginx/ssl/xyz.com.crt; ssl_certificate_key /etc/nginx/ssl/xyz.com.key; root /srv/xyz.com; […]
我们想validation我们所有的网站使用正确的HTTPcaching头。 是否有一个脚本在那里向网站发出请求,检查它的响应头并报告它是否会被正确caching? 如果脚本与Nagios或Icinga兼容,奖励点数。