如何盡量關閉 Nginx 的所有快取

2021-10-26 20:34:53 +08:00
 viberconnection
提問背景:
po 主職業是一個設計師啦,一些技術方面的問題屬實不懂,在爬貼文無果的情況下,於是就向各位來請教咯。在此先謝謝各位。XD

業務場景:
局域網有 A 、B 、C 三台主機,A 是 Database 以及一個 Web 的查詢系統、B 是 OA ,C 是 Nginx 的 Reverse Proxy ,A 、B 的系統通過 C 的 Reverse Proxy 對外提供訪問(加這道關卡的原因是原先的系統不方便改進以提供 ssl 和 IPv6 )
然後某日遇到了訪問延遲過高的問題,排查了一圈以後發現問題僅是 Nginx 的 Request Buffer 和 Cache 導致的。(然後就導致 A 與 B 收到的請求不完整)( Nginx 的版本號是 1.10 )

想要實現的需求:
如何才能在此種場景下關閉 Nginx 所有的 Cache 和 Buffer ?或者是說如果不能真正的關閉的話,如何做到盡量關閉?因該修改那幾個配置檔。

(我現在都在懷疑 484 我司後端維護人員太菜才做不到這點,做不到就算了還把原因甩鍋給我說是幾日前我往 OA 上傳大型檔案導致的 ㄚㄏㄏ)
1709 次点击
所在节点    NGINX
6 条回复
eason1874
2021-10-26 21:15:53 +08:00
http://nginx.org/en/docs/http/ngx_http_proxy_module.html

proxy_cache off;
proxy_buffering off;
proxy_request_buffering off;

proxy_http_version 1.1;
zjlletian
2021-10-27 11:44:45 +08:00
台湾的?? 大陆这边一般都叫缓存。。。

快取,有点像 cache 的谐音,也有快速读取的意思,第一次见这个说法。
GGMM
2021-10-27 13:05:10 +08:00
@zjlletian 对,台湾的 cache 翻译就是快取,大陆的是缓存,两个反义词是同一个意思
darkengine
2021-10-27 13:14:14 +08:00
location ~ .*\.(htm|html)$
{
expires -1;
}

我们的服务器是这么配的,不缓存所有 html 文件
superrichman
2021-10-27 14:21:25 +08:00
add_header Cache-Control "no-cache, no-store";

其实还有其它参数能加,不过这两个够我用的
saytesnake
2021-10-27 14:48:10 +08:00
如果只是静态前端,只需要楼上说的,

add_header Cache-Control "no-cache, no-store";

即可,代理缓存应该不用关。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX