nginx + ssi +远程uri访问不起作用

stu*_*nti 1 nginx ssi

我有一个设置,我的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;
  }