我有一堆与nginx + php-fastcgi一起工作的网站,我没有抱怨!唯一不起作用的是名为Gallery3的PHP图库应用程序。可悲的是,我必须在这个应用程序中使用Apache。我的问题是:Apache + Nginx反向代理默认不服务index.php
gallery.wfto.cc - 不工作(下载包含的index.php的PHP代码,因为它是没有得到解析了一个不知名的文件)
画廊。 wfto.cc/ - 不工作(同样的事情)
gallery.wfto.cc/index.php - 不工作(同样的事情)
gallery.wfto.cc/index.php/- 工作。
gallery.wfto.cc:9001(all variants) - Works。
我不知道发生了什么事。我在下面列出了大部分配置。 /etc/nginx/conf.d/proxy.conf是一个普通的代理配置,没什么特别的。
##NGINX CONFIG##
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/vhosts/wfto.cc/subdomains/gallery;
server_name gallery.wfto.cc;
access_log /var/log/nginx/gallery.wfto.cc.access.log;
location/{
proxy_pass http://127.0.0.1:9001;
include /etc/nginx/conf.d/proxy.conf;
}
}
## APACHE CONFIG ##
<VirtualHost *:9001>
ServerAdmin [email protected]
DocumentRoot /var/www/vhosts/wfto.cc/subdomains/gallery
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/vhosts/wfto.cc/subdomains/gallery/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
您确定nginx服务器条目是实际使用的,而不是偶然的(例如URL中的域名错误拼写)?检查访问日志以确保。一些更笨的事情要检查:重新启动nginx确保停止后没有正在运行的进程是活着的;将'root'改为空目录(如果它将一切代理到Apache,则nginx不需要访问该内容)。 – 2012-04-16 16:39:41
我改变了根指向一个空目录(空目录),但不会改变任何东西。该服务器块是唯一一个捕获该子域上的流量的服务器块。 – meinemitternacht 2012-04-16 16:58:39
更改为空目录之后,您是否检查过Apache的访问日志,无论您的测试实际上是否完全通过Apache?如果你仍然得到“相同的结果”(我假设下载index.php的内容),那么这也意味着你的浏览器只是返回一个缓存结果。 – 2012-04-16 17:50:20