如何映射nginx以响应请求者?

问题描述:

我有应包含PHP函数几个不同的网站响应Nginx上服务器:如何映射nginx以响应请求者?

file_get_contents(); 

当查看日志,我可以看到请求方的IP:

191.56.110.18 - - [07/Mar/2013:00:46:53 +0000] "GET/HTTP/1.0" 200 151 "-" "-" 

但我想nginx的映射请求者的实际请求页面。因此,举例来说,当我的领域之一使用file_get_contents()摆脱www.mydomaim.com/page20页面的响应则nginx的将其映射到包含字符串"this is page 20"

我想,也许我会让在每一个参数的请求的文件我的域:

$_SERVER['SERVER_NAME'] 

所以通话会是这样的:

file_get_contents('http://www.nginxserver.com/?domainpage='. $_SERVER['SERVER_NAME']); 

但是,这将只返回域名,我认为这不是最佳的。对于nginx我显然是新手,并且正在寻找执行此功能的最佳方法。

我的目标是根据请求页面提供静态内容。我错过了什么吗?什么是最好的方式去做这件事?

+0

如果您提供静态内容,你应该把PHP和file_get_contents完全排除在等式之外。 nginx的面包和黄油正在提供静态内容,所以让nginx调用静态内容。如果它正在服务整个页面,那么就让nginx重定向到你想要的内容。如果还有其他事情发生,比如它只是页面的一部分,那么我需要更多的信息。我的主要问题是,你为什么这样做?为什么你觉得file_get_contents在这种情况下很重要? – 2013-03-07 06:18:39

+0

@MarkTomlin想到nginx决定在每个页面上显示“横幅”。这只是网页的一部分。我不能用javascript异步执行它,但必须使用file_get_contents – Tom 2013-03-07 11:09:41

根据请求的页面上:

的信息是在引用http头,这是通过$http_referer变量从nginx的内访问过。

但请记住,有没有保证引用站点头将被设置,或者设置正确(欺骗或阻塞Referer标头是既简单,半常见)