是否存在 yum 的缓存代理,类似于 Debian 存储库的缓存代理?
有没有办法让reprepro的行为与大约相同?我听说 approx 不太稳定;此外,我更喜欢使用 reprepro,这样我就可以使用我现有的 Web 服务器来为存储库提供服务。
我将向我的 ZFS 存储添加一个 SSD 驱动器作为缓存。任何人都有这方面的经验?如果缓存设备死了,任何数据会受到影响吗?
在 Apache 中进行重定向很容易 (mod_alias):
RedirectMatch ^.*$ http://portal.example.com/
Run Code Online (Sandbox Code Playgroud)
设置缓存标头同样简单:
Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
Run Code Online (Sandbox Code Playgroud)
(我不想缓存这个)
但!好像不能把两者结合起来。此配置导致发送重定向,但不发送标头:
<VirtualHost *:80>
ServerName __default__
Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
RedirectMatch ^.*$ http://portal.example.com/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
实际发生的例子:
jb@apto % telnet 192.168.0.1 80
Trying 192.168.0.1...
Connected to redirector.example.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: foo
HTTP/1.1 302 Found
Date: Sat, 21 Aug 2010 09:36:38 GMT
Server: Apache/2.2.9 (Debian) Phusion_Passenger/2.2.9
Location: http://portal.example.com/ …Run Code Online (Sandbox Code Playgroud) 我正在尝试制定一种策略来处理缓存的 javascript 文件、css、图像等,当我们发布对我们网站的更新时。在我开始在 javascript 文件上实现版本号之前,我想知道在每次发布后重置 IIS 是否会有效地导致缓存文件被重新发送。
如果服务器安装在大小合适的 UPS 上,电池是否是多余的?有一个选项可以强制写回模式,我想了解风险。据我了解,它有助于防止电源故障,而缓存中的数据尚未写出到物理磁盘。但如果服务器使用 UPS,则不存在断电风险,特别是如果它是智能 UPS 并且服务器配置为在电池电量不足时正常关闭。我错过了什么吗?
这是一个与浏览器无关的问题,但我们正在使用 IE9 进行测试。
我们的用户访问的 Web 应用程序之一被随机缓存,更改未在应有的时候显示。没有其他网站有这个问题,我们已经与声称它不会发生在其他任何人身上的供应商合作。如果我们使用开发人员工具栏并选择“从服务器强制刷新”,一切都会正确更新。
我们的想法不是真正解决问题,而是通过禁用此特定站点的缓存来解决它。但是,我们不知道如何。
我的 php 脚本正在发送一个标头X_Cache_ttl: 1h,在我的清漆配置文件中我有
sub vcl_fetch
{
if(beresp.http.X-Cache-ttl){
set beresp.ttl = beresp.http.X-Cache-ttl;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试启动它时,带有 set 命令的行导致 varnish 失败。
在我得到的日志中
Expression has type STRING, expected DURATION
('input' Line 116 Pos 34) -- ('input' Line 116 Pos 56)
set beresp.ttl = beresp.http.X-Cache-ttl;
Run Code Online (Sandbox Code Playgroud)
如何转换X-Cache-ttl为持续时间以便我可以动态设置 TTL?
我想避免多个类似的 if 语句
if(beresp.http.X-Cache-ttl == "60s") {
set beresp.ttl = 60s;
}
if(beresp.http.X-Cache-ttl == "1h") {
set beresp.ttl = 1h;
}
Run Code Online (Sandbox Code Playgroud)
如果重要的话,我在 centos 6 上使用 varnish 3.0.3。
我有以下情况发生:
我们使用 8 核、8GB 内存、2.6 GHz 的 linode - 使用 nginx + php-fpm - 我们得到了极高的 CPU 使用率图(我们不想成为如此糟糕的 VPS 邻居)...
我们网站上一次只有不到 100 个用户——所以这种情况也非常尴尬——我们的 CPU 使用率非常高。
我们正在使用一个非常未知的、可能是 CPU 密集型的 php-wise、可疑的可怕框架,而不是众所周知的、有据可查的、精心设计的其他框架,如 wordpress 或 drupal,其中有很多关于缓存(以及插件)的文档在 nginx + php_fpm 平台上处理缓存)php。
因此,我们有大约 6 个开放的 php-fpm 进程在运行时单独消耗大量(30+,通常接近 99%)的 cpu - 我真的一点也不知道如何阻止它们使用这么多 cpu . 我不知道是哪些 php 脚本导致了这些峰值,因为它们一直在发生……通常只有 1 或 2 个正在运行 - 但是当所有 6 个脚本都运行时,我们最大化了所有 8 个 cpu。
我的 pool.d/www.conf 文件具有以下设置:
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
Run Code Online (Sandbox Code Playgroud)我们这样做 ^ …
我们有 8 个带有 Nginx 的 REST-ish API 服务器,使用 FastCGI 和 PHP-FPM 来处理请求。我们目前正在使用 Nginx 的 FastCGI 缓存(类似 的指令fastcgi_cache_path)。这意味着 API 响应被缓存,但每个服务器都有一个单独的缓存。
有没有一种在所有八台服务器之间共享缓存存储的好方法?
我们已经考虑过使用Redis作为共享存储,但是可用的模块似乎需要应用程序更改。在某些情况下,我们可能希望缓存超出我们控制范围的响应(通过 HTTP 到外部 API)。理想情况下,可以直接替代 Nginx 内置的 FastCGI 和 HTTP 响应缓存。
我正在尝试让 Cache-Control 在 Nginx 上为我服务器上的资产工作,但它没有按预期工作。这是我的 Nginx 服务器配置。
除了 Cache-Control 之外的一切都在工作。
server {
listen 80;
server_name www.example.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 80;
server_name example.com;
rewrite ^ https://www.$server_name$request_uri? permanent;
}
server {
listen 443 ssl;
server_name default;
root /app/public;
ssl_certificate /etc/nginx/ssl/default/crt/server.crt;
ssl_certificate_key /etc/nginx/ssl/default/crt/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
add_header "X-UA-Compatible" "IE=Edge,chrome=1";
location ~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)$ {
expires 1d;
access_log off;
add_header Pragma public;
add_header Cache-Control "public, max-age=86400";
add_header X-Asset "yes";
}
location / …Run Code Online (Sandbox Code Playgroud)