我有一个设置,我的nginx在apache + PHP后面.
我的PHP应用程序在memcache中缓存一些页面,这些页面由nginx直接访问,除了在Nginx中使用SSI构建的一些动态部分.
我遇到的第一个问题是nginx没有尝试使用memcache作为ssi URI.
<!--# include virtual="/myuser" -->
Run Code Online (Sandbox Code Playgroud)
所以我想如果我强迫它使用完整的URL,它就会这样做.
<!--# include virtual="http://www.example.com/myuser" -->
Run Code Online (Sandbox Code Playgroud)
但是在日志文件(包括nginx和apache)中,我可以看到在url的开头添加了斜杠
http ssi filter "/http://www.example.com/myuser"
Run Code Online (Sandbox Code Playgroud)
在SSI模块的源代码中,我看到一个似乎被添加的PREFIX,但我真的可以告诉我是否可以禁用它.
有谁有这个问题?Nginx版本:Ubuntu Karmic 64位上的0.7.62
非常感谢
Pet*_*ikh 17
您可以将nginx配置为包含远程URL,尽管您无法在SSI指令中直接引用它们.在站点配置中,使用本地路径创建位置,并指定指向所需位置的远程位置.例如:
server {
....
location /remote {
proxy_pass @long_haul; # or use "try_files" to provide fallback
}
location @long_haul {
proxy_pass http://porno.com;
}
....
}
并在服务的html中使用include指令引用/远程路径:
<!--# include virtual="/remote/rest-of-url&and=parameters" -->
请注意,您可以自定义使用变量和regexp进一步传递的URL.例如:
location ~/remote(.+) {
proxy_pass @long_haul$1?$args;
}