2012-04-15 74 views
0

我有一堆与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> 
+0

您确定nginx服务器条目是实际使用的,而不是偶然的(例如URL中的域名错误拼写)?检查访问日志以确保。一些更笨的事情要检查:重新启动nginx确保停止后没有正在运行的进程是活着的;将'root'改为空目录(如果它将一切代理到Apache,则nginx不需要访问该内容)。 – 2012-04-16 16:39:41

+0

我改变了根指向一个空目录(空目录),但不会改变任何东西。该服务器块是唯一一个捕获该子域上的流量的服务器块。 – meinemitternacht 2012-04-16 16:58:39

+0

更改为空目录之后,您是否检查过Apache的访问日志,无论您的测试实际上是否完全通过Apache?如果你仍然得到“相同的结果”(我假设下载index.php的内容),那么这也意味着你的浏览器只是返回一个缓存结果。 – 2012-04-16 17:50:20

回答

0

我不知道在什么时候,事情开始工作,但如果你改变服务器的配置请务必清除浏览器的缓存彻底。

0

在Apache中的conf补充一点:

<IfModule dir_module> 
    DirectoryIndex index.php 
</IfModule> 
+0

仍然无法使用。我不认为它与DirectoryIndex有关,因为当我通过gallery.wfto.cc:9001直接访问Apache时,它工作正常。 – meinemitternacht 2012-04-15 20:30:21

+0

添加到“位置/”在nginx下面的行: index index.php; – shark555 2012-04-15 20:45:53

+0

也不起作用。 – meinemitternacht 2012-04-15 22:13:51