【发布时间】:2012-01-04 03:27:39
【问题描述】:
昨天我的服务器负载很大,即使我之前致力于优化性能(大约 2 个月前我遇到过类似的问题),我的服务器也无法处理负载(我有一个服务每分钟创建大约 50 个帐户)。
最后,我的服务器处理了负载,因为我更改了实例:我在 Amazon EC2 上,我使用的是具有 20 个微型实例的负载均衡器。这还不够。我终于改成10个大实例了,没关系。 但是,你知道,大型实例有点贵,而且我买不起这么多大型实例(现在,因为负载较少,我“只”运行了 5 个大型实例,但也太多了)。
所以,我仍在优化和服务器配置,但我卡在一个点上。
到目前为止,我正在使用 symfony 和 memcached。它工作正常,所有应该缓存的东西都被缓存了,等等。
现在,我想在我的 apache Web 服务器前面添加一个 Varnish。
我这样做了,我配置了它——我想——好吧,它现在正在运行。问题是缓存没有命中。
据我所见,问题在于 symfony 发送的 HTTP 标头设置不正确。 例如,对于缓存的请求,我有以下标头:
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
模块已正确配置为使用缓存等,但我只是找不到可以设置正确 HTTP 标头的位置。我知道如何在 symfony 中为特定操作设置缓存头,但很明显,我不想在每个操作上都这样做(顺便说一下,即使我这样做了,我认为这不是正确的方法) .
所以我在问如何在 symfony 1.4 中使用 Varnish 就我所见,有两种可能:
- 我正确设置了 symfony 发送的 HTTP 头
- 我配置 Varnish 以正确处理 symfony 发送的默认 HTTP 标头
你知道我该如何解决其中一个问题吗?
谢谢,
注意: 我在 Varnish3 上
【问题讨论】:
-
+1 有趣的问题。我也将很快在 symfony 1.4 中使用 varnish。我有兴趣阅读答案。
标签: php apache http-headers symfony-1.4 varnish