![在 Nginx 中,我可以同时处理来自 memcached 的 location:url 或 content-type: text/html 响应吗?](https://linux22.com/image/510823/%E5%9C%A8%20Nginx%20%E4%B8%AD%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E5%A4%84%E7%90%86%E6%9D%A5%E8%87%AA%20memcached%20%E7%9A%84%20location%3Aurl%20%E6%88%96%20content-type%3A%20text%2Fhtml%20%E5%93%8D%E5%BA%94%E5%90%97%EF%BC%9F.png)
我正在设置一个 nginx - apache 反向代理,其中 nginx 处理静态文件,apache 处理动态文件。我有一个搜索引擎,根据搜索参数,我可以直接将用户转发到他们正在寻找的页面或提供一组搜索结果。
我将这些结果缓存在 memcached 中
key:/search.cgi?q=foo
value: LOCATION:http://www.example.com/foo.html
和
key:/search.cgi?q=bar
value: CONTENT-TYPE: text/html
<html>
....
....
</html>
我可以使用 nginx 从 memcached 中提取“Content-type....”值并将其发送给用户,但我不太清楚如何处理像“Location...”这样的返回值。
我可以吗?
答案1
据我所知,nginx memcached 模块只能存储请求的原始内容,无论是 gif、html 还是其他什么。如果不破解模块,它将无法解释您的 LOCATION 参数。(不推荐)
要以这种方式使用 nginx,您必须使用 memcached 来存储 LOCATION 字段指定的页面的实际 html 内容,并将其存储在您的 memcached 中,或者以其他方式使用一组重定向。