我已经configurationNginxcaching来自上游服务器的所有响应,总是返回Cache-Control: public, max-age=1但nginx似乎caching了响应2秒。 怎么来的? 更具体地说,我的上游服务器是一个简单的Express.js(节点)应用程序返回当前时间: app.get('/', function (req, res) { res.setHeader('Cache-Control', 'public, max-age=1'); res.send((new Date()).toISOString()); }); 这是相关的nginxconfiguration: http { proxy_cache_path /data levels=1:2 keys_zone=zuul:10m max_size=10g; … server { location / { proxy_cache zuul; proxy_pass http://zuul; proxy_cache_use_stale updating; proxy_cache_background_update on; } listen 0.0.0.0:80 default_server; } } 然后我在一个循环中curl http://localhost ,希望看到响应(包含node.js看到它的时间戳)每秒都在变化。 而不是每两秒钟更改一次。 就好像Nginx不愿caching响应的时间less于两秒钟,并不尊重上游返回的max-age 。 我如何说服Nginxcaching响应
我们最近在我们的ERP系统上应用了一个补丁,更新了HTML,JavaScript和CSS文件。 在应用补丁程序后,大量用户呼叫帮助台报告菜单页面上的function丢失。 根本原因是由于用户的浏览器(IE11)在浏览器caching中保存了一个旧的JavaScript文件。 按键盘上的F5或清除caching解决了这个问题,因为它强制从服务器下载新版本的JavaScript文件。 但是,指导每个用户如何清除caching不是一个select,因为有数十万个ERP系统的用户。 我的问题:是否有任何服务器端设置,将强制浏览器从服务器(Apache)加载最新的JavaScript文件? 这样的情况是否有最佳做法? 我们知道,浏览器设置可以更改为始终加载新的浏览器,但是对networking和服务器性能有影响。 另外,由于支持限制,我们不能使用自动更新。 任何想法表示赞赏。
我刚刚升级了一台DL585 g7服务器,用4颗Opteron 6274 CPUreplace了它的Opteron 6172 CPU。 我读到的每一个消息来源都说,Opteron 6274应该有8x2MB的二级caching和16MB的三级caching,但是Windows Server 2016认为所有的四个处理器一起只有48MB的三级caching(即每秒12MB),尽pipe预期的64MB的二级caching。 这些是生产芯片,而不是工程样品,如在CPU-z中所确认的,并阅读其中的文字。 但是,在服务器启动时,BIOS读数会将每个CPU标识为具有16MB L2和16MB L3,这与在Windows Server中运行的Windows Server 2016和CPU-z不同。 你认为制造商在他们的文件中只写了错误的号码吗? 我知道6200 Opteron系列的更低的步长只有2x6MB的三级caching。 但是,我看看是否有其他人有这个问题,什么都没有发现。 还是我碰巧得到4个芯片,都有不好的三级caching? 或者一些主板设置可以防止我的操作系统看到所有的caching? 感谢您的时间。
我正在寻找在Nginx上设置现金,因此某些文件的caching永远不会超过2个小时,而且caching将在每天早上6点15分过期。 我遇到的问题是在相同的位置块中设置这两个时间限制。 到目前为止,我有这个 uwsgi_cache_path /data/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=10g; . . . location ~* /my/path/and/image.*\.png$ { expires 7200; include uwsgi_params; uwsgi_pass unix:/tmp/my_project_name.sock; uwsgi_cache_key $request_uri; uwsgi_cache my_cache; add_header Pragma public; add_header Cache-Control "public"; add_header X-Cache-Status $upstream_cache_status; } 我查看了http://nginx.org/en/docs/http/ngx_http_headers_module.html哪些设置caching过期使用expires @15h30m; 所以我试着设置 expires 7200, @6h15m; 但是这个语法似乎不被接受。 注意:另外,我还需要让用户的浏览器caching每30分钟左右过期一次。
有人可以告诉我的程序和要求,如果我想为文件服务器设置caching? 我从来没有实现这样的事情,我没有一个非常清楚的想法如何实施它,一步一步(主)程序和要求将高度赞赏。 场景: 从应用程序最终用户select“文档”选项可以在应用程序屏幕上看到文件或文档(主要是pdf和xml),但实际上是从数据库中提取的文件的名称(元数据)。 当用户单击屏幕上的文件名时,请求将转到数据库和数据库调用到保存实际文件的Documentum服务器。 然后Documentum通过Documentum Web服务(Documentum的后端)来完成这项工作。 然后打开或下载实际的文件。 在这个过程中,如果任何客户有10-15个文件,那么需要更多的时间来加载,我想加快这个过程。 更多信息: 应用程序和文档托pipe在Linux上,数据库位于AIX上。 文件是静态的。 所有的文件都有唯一的ID。 文件的平均大小是3 MB。 如果创build了相同数据的任何新版本,则全部保留在具有版本控制的相同目录中。 (相同的文件不被编辑) 一些问题: 这种方法有效吗? 还是有更好的办法? 哪里应该实施caching服务器,这将更有效? (Documentum方或任何其他)如果有任何文件在caching中,并且在后端生成了一些新版本的文件,那么情况会是怎样? 在这种情况下,用户将直接从caching(这不是预期的)或从实际的服务器新修改的文件中获取文件?
我们已经注意到Varnish指标突然出现高峰(参见下面的截图)。 它没有明显的原因发生,并在重新启动清漆后消失。 有没有人有任何线索如何解决这个问题?
我有一个32克内存的服务器和它的状态,是(免费-m): total used free shared buffers cached Mem: 32071 31488 583 0 244 19329 -/+ buffers/cache: 11914 20157 Swap: 17399 287 17112 caching的大小是增长(每个重新启动应用程序和清除caching之间) 5个小时后,我发布我的问题的内存状态是: total used free shared buffers cached Mem: 32071 31850 221 0 194 20124 -/+ buffers/cache: 11530 20541 Swap: 17399 299 17100 我的java选项是: -Xms12g -Xmx12g -XX:MaxNewSize=6g -XX:NewSize=6g -XX:+UseParallelOldGC -XX:+UseParallelGC -XX:+UseTLAB -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC […]
什么是最好的方法,或者是从xpicaching数据的不同方式,如果api停机,则回退到最后的caching? 我的情况: 我有一个网站(运行Apache),显示下一场足球比赛 我从API(数据提供者)获取数据 我想caching请求,所以我不超过API的限制 如果数据提供者closures,我仍然需要显示上次caching的数据 有没有办法做到这一点? 或者更多什么是最好的方法? 我可以用nodejs服务器来做到这一点吗?
所以我有一个关于如何使用负载平衡器指定当前用户到当前服务器的问题? 我有问题与存储在应用程序caching中的产品桶。 客户端根据不同的后端有两个桶。 这是一个问题。 后端symfony。 我试图用散列指标来制作清漆LB。 但是我觉得我做错了,因为没有帮助 一般问题:我该如何解决这个问题? 也许我必须find解决scheme与这个后端之间的同步caching? 有任何想法吗? 我的configuration: backend b1 { .host: "someHost" .probe: {…} } backend b2 { .host: "someHost" .probe: {…} } sub vcl_init { new balancer = directors.hash(); balancer.add_backend(b1, 10.0); balancer.add_backend(b2, 10.0); } sub vcl_recv { set req.backend_hint = balancer.backend(client.ip); }
我正在为具有login用户的dynamic内容的电子商务平台工作,但对于注销的用户,许多页面(如产品页面和类别页面)相对静态。 Rails已configuration为在访问时将特定注销页面的副本保存到磁盘。 我希望nginx在检测到注销的用户时提供这些文件。 当用户login时,我们有一个cookie设置,所以我的希望是我可以检查这个。 我的'理想'nginxconfiguration看起来像(在服务器块): location /my_location { if (!$cookie_user_logged_in) { try_files /cached_pages/$uri /cached_pages/$uri.html $uri $uri/index.html $uri.html @rails_application; } } 但是,这是无效的,因为据我所知,根据研究和错误消息,不能把try_files放在if中。 有没有办法用nginx来完成这个任务? 有人告诉我,我应该用另一种工具,如清漆。 我也知道,我可以在Rails中使用动作caching来做事情,并使用片段caching来接近相同的目的。 不过,我想确定这是否是一个可行的select,然后再添加到技术堆栈或进一步投资开发。