我目前正在致力于在 NGINX(反向代理)上启用缓存。
使用此配置,X-Proxy-Cache 的值始终为MISS。
我当前的conf(在/etc/nginx/conf.d中):
proxy_cache_path /data/nginx/cache/MON_URL levels=1:2 keys_zone=MY_ZONE:8m max_size=1000m inactive=24h;
upstream opera {
server MY_SERVER_IP:443;
}
server {
listen 80;
server_name MON_URL www.MON_URL;
return 301 https://MON_URL$request_uri;
}
server {
listen 443 ssl;
server_name www.MON_URL;
return 301 $scheme://MON_URL$request_uri;
}
server {
listen 443 ssl;
server_name MON_URL;
location / {
proxy_pass https://opera/;
rewrite ^/$ /OPERA/ last;
proxy_cache MY_ZONE;
proxy_cache_valid any 24h;
proxy_set_header Host $host;
add_header X-Proxy-Cache $upstream_cache_status;
}
location /robots.txt {
return 200 "User-agent: *\nDisallow: /";
} …Run Code Online (Sandbox Code Playgroud) 在连接到 Internet 的网络上有几台计算机,是否有一种方法可以将所有传入的文件和媒体存储在全局共享网络缓存中,以便只需要一次。特别是对于视频共享网站,不是每次下载相同的视频 10 次以上,它可以下载到缓存并在将来从那里访问吗?
我正在尝试释放服务器上的一些空间,但我注意到
/var/cache/apt has 322M
Run Code Online (Sandbox Code Playgroud)
假设它只是一个缓存,在我看来,删除这些文件应该没问题,如果它再次需要它,那么它只会再次下载文件
这是正确的假设吗?
服务:debian 4
使用trac,我收到带有以下标头的响应:
Cache-control: must-revalidate
Run Code Online (Sandbox Code Playgroud)
此外,没有发送“过期”标头。然而,我们的本地代理正在缓存这些响应,因此在进行编辑时,页面需要“硬刷新”才能更新。代理行为不正常吗?其他可能相关的标题:
Connection Keep-Alive
Proxy-Connection Keep-Alive
Keep-Alive timeout=15, max=100
Run Code Online (Sandbox Code Playgroud) 我有配置输出缓存的动态内容。根据我的测试,IIS 似乎没有将内容视为值得缓存的内容。如何监控 IIS 正在做什么?似乎 PerfMon 有一些我感兴趣的计数器,但我不确定要查看哪些计数器。如果我的内容不是基于查询字符串或表单参数的,而是基于 URI 的,我的内容不会被视为值得缓存吗?
我正在使用共享主机,但无法启用 APC。有一个关于该线程在这里,建议的唯一原因是为了安全(PHP,CGI VS mod_php的)。我询问了主机,他们说这是由于性能原因,特别是 I/O 会导致盒子关闭。我真的不明白 - 使用共享内存操作码缓存肯定会减少I/O?基本上,如果我正在建立一个共享托管公司(不是我可以!),我会认为使用缓存(如果安全性允许)来提高所有客户端的性能会很有意义。
任何人都可以为我解释一下吗?TIA
我想知道避免使用 Varnish 缓存网站的“某些页面”并缓存所有其他页面的正确方法是什么。
这就是我试图用 vcl conf 做的事情:
sub vcl_fetch {
#set beresp.ttl = 1d;
if (!(req.url ~ "/page1withauth") ||
!(req.url ~ "/page2withauth")) {
unset beresp.http.set-cookie;
}
if (!beresp.cacheable) {
return (pass);
}
if (beresp.http.Set-Cookie) {
return (pass);
}
return (deliver);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在寻找建立一个高性能网站。它有数以千计的静态 HTML 页面,这些页面是根据表单提交专门呈现的。我有一个 ruby 脚本,可以生成这些静态 HTML 页面并将它们存储在服务器上。
现在我正在查看站点上 1000 多个并发用户。这是为这些用户提供服务的最快方式。我相信 Nginx + Varnish 可以在这种情况下做得非常好。我还能做进一步的优化吗?
有没有办法代替 NGinx + Varnish 为 HTML 页面访问磁盘,而是访问 RAM。以某种方式使用 Memcached。
我已经在考虑将其他静态资产(如图像/样式表)移出 CDN。请告知解决此问题的最佳方法是什么。
谢谢!
[转自 StackExchange:https ://stackoverflow.com/questions/6439484/building-a-high-performance-static-website ]
我正在开发一个应用程序,每天捕获大量(1000 万+)非常小的数据块(16 字节)。数据不是连续的(即很多要写入的数据)并且它不是一个恒定的流(有一些安静的时期)。
该应用程序在它前面有缓存服务器,因此读取不是一个问题,我预计在给定的一天只有 1% 的数据是感兴趣的,而 1% 将位于缓存中。只有第一次阅读应该很慢。
我有一个很好但有限的预算,我想要 RAID 1,它使我的磁盘成本增加一倍。
我的选择是:
你会怎么办?或者换句话说,控制器上的大缓存是否在写入方面补偿了较慢的寻道时间?
我们是一家戴尔商店,我在看 R410/R510。
我对整个访问和修改感到困惑。
我希望文件被缓存,直到它们被修改。如果数据相同,则显示缓存版本。如果数据发生了变化,下载更新的版本并缓存它。
我不明白你为什么想要不同的东西?所有这些访问加上 6 个月对我来说没有意义。如果上次修改日期比缓存日期新,则请求一个新文件。这么简单的方法难道不能做到吗?
我希望能够在 2012 年 1 月 1 日创建 index.html 并让每个人都缓存它。在我编辑它之前,我不想再次下载它。假设我在 2012 年 1 月 5 日对其进行了编辑,并且自 2012 年 1 月 1 日以来没有看过 index.html 的人出现,他们应该看到他们有 1/1/2012 缓存,但现在该文件的最后修改时间为1/5/2012 所以他们下载 1/5/2012 版本并缓存它。
我从不想编辑某些内容并且让用户在任何时间段内都看不到它。我希望在下一个请求时查看我的所有编辑。
如何对所有文件执行此操作?
cache ×10
nginx ×2
varnish ×2
apache-2.2 ×1
debian ×1
dell ×1
html ×1
http ×1
iis-7 ×1
internet ×1
networking ×1
performance ×1
php ×1
proxy ×1
sas ×1