我有以下Nginx配置,我们可以从Nginx-T
的输出中看到,它在语法上是正确的。我在下面的输出中加粗了一些相关部分:
$ sudo nginx -T nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # configuration file /etc/nginx/nginx.conf: events {} http { proxy_cache_path /tmp/cache keys_zone=one:10m levels=1:2 inactive=2M max_size=100g; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # Static file server server { listen 127.0.0.1:8080; root /opt/nginx-test-data; location / { } } # Reverse proxy that talks to server defined above server { listen 127.0.0.1:8081; proxy_cache_min_uses 1; location / { proxy_pass http://127.0.0.1:8080; proxy_cache one; } } }
我知道在正常实践中,服务器和代理服务器在不同的主机上。目前,我只是试图学习如何配置Nginx代理服务器与内容缓存,因为Nginx对我来说是新的。
我有以下2MB随机字节文件:
$ ls -lh /opt/nginx-test-data/random.bin
-rw-rw-r-- 1 shane shane 2.0M Jun 21 11:39 /opt/nginx-test-data/random.bin
当我卷曲反向代理服务器时,我得到一个200的响应:
$ curl --no-progress-meter -D - http://localhost:8081/random.bin --output local-random.bin HTTP/1.1 200 OK Server: nginx/1.18.0 (Ubuntu) Date: Mon, 21 Jun 2021 15:50:07 GMT Content-Type: text/plain Content-Length: 2000000 Connection: keep-alive Last-Modified: Mon, 21 Jun 2021 15:39:54 GMT ETag: "60d0b2ca-1e8480" Accept-Ranges: bytes
但是,我的缓存目录为空:
$ sudo ls -a /tmp/cache/
. ..
我检查了/var/log/nginx/access.log
和/var/log/nginx/error.log
,没有记录错误。
在向反向代理服务器发出请求后,我做错了什么,导致缓存目录中没有条目?
事实证明,我需要添加一个proxy\u cache\u valid
指令(尽管我不清楚为什么需要这样做-我假设只要在位置使用
proxy\u cache\u valid
就可以自己打开缓存)。
我的
nginx。conf
有效(请注意粗体新行):
events {}
http {
proxy_cache_path /tmp/cache keys_zone=one:10m levels=1:2 inactive=2M max_size=100g;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# Static file server
server {
listen 127.0.0.1:8080;
root /opt/nginx-test-data;
location / {
}
}
# Reverse proxy that talks to server defined above
server {
listen 127.0.0.1:8081;
proxy_cache_min_uses 1;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_cache one;
proxy_cache_valid 200 10m;
}
}
}
不管我怎么努力,页面都被缓存了。因此,php函数运行一次后,总是显示缓存的结果,直到您按下Shift F5 > 我禁用了奥普卡什(在 phpinfo()上不再有奥普卡切了) 我禁用了APC(phpinfo()上不再有APC) 我使用了标题 Cache-Control:no-store,no-cache,必须重新验证"); // HTTP/1.1标头(Cache-Control:post-check
本文向大家介绍基于Nginx的Mencached缓存配置详解,包括了基于Nginx的Mencached缓存配置详解的使用技巧和注意事项,需要的朋友参考一下 简介 memcached是一套分布式的高速缓存系统,memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的
1. Nginx中的缓存介绍 由于 Nginx 是在网站的所有其他后台服务的最前线,它接收的请求和流量是后台服务的数倍甚至数十倍之多。因此,用好 Nginx 的缓存功能对于大型网站而言至关重要。Nginx 中的缓存功能优势如下: 提升所有客户端体验 有效降低上游服务器的负载 减少上游服务器之间的流量消耗 Nginx 的 Web 缓存服务主要由 proxy_cache 相关指令集和 fastcgi_
问题内容: 我在Java 6的String源代码中注意到,hashCode仅缓存除0以外的值。以下代码段显示了性能差异: 在ideone.com中运行此命令可获得以下输出: 所以我的问题是: 为什么String的hashCode()不缓存0? Java字符串哈希为0的概率是多少? 避免对于每次哈希值都为0的字符串每次都重新计算哈希值的性能损失的最佳方法是什么? 这是缓存值的最佳实践方法吗?(即除了
缓存的配置在configs/cache目录,目前支持三种缓存,文件缓存(FileCache), memcache缓存(MemoCache), redis缓存(RedisCache). 文件缓存的配置在file.config.php, 只有一个参数 "cache_dir", 表示文件缓存的根目录 memcache缓存配置在memo.config.php, 可以添加多个memcache服务器,配置格式
问题内容: 我正在尝试缓存静态内容,这些内容基本上位于虚拟服务器配置中的以下路径内。由于某些原因,文件没有被缓存。我在缓存目录中看到了几个文件夹和文件,但总是像20mb一样高或低。例如,如果要缓存图像,则将至少占用500mb的空间。 这是nginx.conf缓存部分: 这是默认的虚拟服务器。 问题答案: 确保您的后端不返回标头。如果Nginx看到它,它将禁用缓存。 如果是这种情况,最好的选择是修复