将清漆caching存储在硬盘中

情况是:
我build立PHP应用程序,并需要HTTPcaching
清漆是伟大的,很多人告诉我,清漆将caching的数据存储在RAM中。 但我希望它caching在硬盘上。

有没有办法将光油caching的数据存储在硬盘上?

谢谢。

清漆有两种主要方法caching你的数据:

  1. 到内存(使用malloc存储configuration)
  2. 到磁盘(与文件存储configuration)

你在问#2。 在这种方法中,Varnish总是将caching写入磁盘,并依靠OS虚拟内存子系统将最常用的磁盘页面保留在RAM中。

如果您使用的是Red Hat / CentOS,请编辑/ etc / sysconfig / varnish

NFILES=131072 MEMLOCK=82000 VARNISH_VCL_CONF=/etc/varnish/default.vcl VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 VARNISH_ADMIN_LISTEN_PORT=6082 VARNISH_MIN_THREADS=200 VARNISH_MAX_THREADS=2000 VARNISH_THREAD_TIMEOUT=120 VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin VARNISH_STORAGE_SIZE=50% #VARNISH_STORAGE_SIZE=1G VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}" VARNISH_TTL=120 # DAEMON_OPTS is used by the init script. If you add or remove options, make # sure you update this section, too. # -h classic,500009 \ DAEMON_OPTS="-f ${VARNISH_VCL_CONF} \ -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \ -t ${VARNISH_TTL} \ -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \ -u varnish -g varnish \ -s ${VARNISH_STORAGE} \ -p thread_pool_min=200 \ -p thread_pool_max=2000 \ -p thread_pools=8 \ -p listen_depth=4096 \ -p session_linger=50/100/150 \ -p lru_interval=60" 

如果没有,你想要这样的东西:

  varnishd -s file,/var/lib/varnish/varnish_storage.bin,50% 

50%将使用可用磁盘的一半。 您也可以使用10G等。使用文件存储时,build议将/ var / lib / varnish挂载到非日志文件系统(例如ext2),并在挂载FS时使用noatime和nodiratime。

清漆将数据存储在磁盘上,然后将其拖入RAM以加速请求。 我很less修改源代码,我怀疑你所要求的是可能的。

看看build筑师笔记 。 快速阅读,你应该很清楚地了解基础知识。 最重要的一点是,Varnish不区分磁盘和内存,这是内核的工作。