我正在为 nginx+apache 进行测试设置。我让 nginx 监听端口 80,让 apache 监听端口 8080。Nginx 设置为处理静态内容,而 apache 设置为处理动态内容(至少在我们升级到 php 5.3 之前)。我的 apache 设置运行良好,以下是 nginx 的服务器部分:
server {
listen 80;
server_name mediocregopher-test;
index test.php;
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
location / {
root /var/www/html;
}
}
问题是,当有人请求“mediocregopher-test:80/”时,我的索引页 (test.php) 需要作为“127.0.0.1:8080/test.php”代理到 apache。使用此设置不会发生这种情况。我对 nginx 还不太熟悉,但我四处寻找,找不到任何可以解决这个问题的设置(尽管问题看起来很简单)。有什么建议吗?
我正在使用 nginx 1.0.1,如果这完全相关的话。
答案1
添加
location = / {
proxy_pass http://127.0.0.1:8080/test.php;
}
答案2
一旦 Nginx 意识到请求的 URL 以以下地址结尾,它就会将请求发送给 Apache:.php,因此您应该在 Apache 配置文件中添加以下行:
DirectoryIndex test.php
您可以找到有关以下方面的更多信息目錄索引以及此 URL 上的作用域:
http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex