FastCGI(通过 Plesk)上的 PHP 为所有不以 .php 结尾的内容提供 404


PHP on FastCGI (via Plesk) gives 404 for everything that doesn't end with .php

我刚刚将PHP从Apache切换到FastCGI(通过Plesk)。现在,我尝试在我的域上访问的每个不是php文件的文件(如css,images,html...)都会给出404。

知道它可能是什么吗?

虚拟主机特定的配置文件 ( /etc/nginx/plesk.conf.d/vhosts/mysite.com.conf ):

#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
server {
    listen 99.99.99.99:443 ssl;
    server_name mysite.com;
    server_name www.mysite.com;
    server_name ipv4.mysite.com;
    ssl_certificate             /usr/local/psa/var/certificates/certEbk3rnT;
    ssl_certificate_key         /usr/local/psa/var/certificates/certEbk3rnT;
    ssl_session_timeout         5m;
    ssl_protocols               SSLv2 SSLv3 TLSv1;
    ssl_ciphers                 HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    client_max_body_size 128m;
    root "/var/www/vhosts/mysite.com/httpdocs";
    access_log "/var/www/vhosts/system/mysite.com/logs/proxy_access_ssl_log";
    error_log "/var/www/vhosts/system/mysite.com/logs/proxy_error_log";
    location / {
        proxy_pass https://99.99.99.99:7081;
        proxy_set_header Host             $host;
        proxy_set_header X-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Accel-Internal /internal-nginx-static-location;
        access_log off;
    }
    location /internal-nginx-static-location/ {
        alias /var/www/vhosts/mysite.com/httpdocs/;
        add_header X-Powered-By PleskLin;
        internal;
    }
}
server {
    listen 50.23.99.2:80;
    server_name mysite.com;
    server_name www.mysite.com;
    server_name ipv4.mysite.com;
    client_max_body_size 128m;
    root "/var/www/vhosts/mysite.com/httpdocs";
    access_log "/var/www/vhosts/system/mysite.com/logs/proxy_access_log";
    error_log "/var/www/vhosts/system/mysite.com/logs/proxy_error_log";
    location / {
        proxy_pass http://99.99.99.99:7080;
        proxy_set_header Host             $host;
        proxy_set_header X-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Accel-Internal /internal-nginx-static-location;
        access_log off;
    }
    location /internal-nginx-static-location/ {
        alias /var/www/vhosts/mysite.com/httpdocs/;
        add_header X-Powered-By PleskLin;
        internal;
    }
}

请求 *.php 文件工作,因为 nginx 透明将其代理到 apache,它被适当的 apache 的 vhost 捕获。

静态文件获得 404,因为:

    正确的nginx
  1. 的vhost无法被nginx找到,并请求默认vhostcathced
  2. 还有另一个nginx vhost可以捕获所有请求(例如通配符子域*.mysite.com)。

这里没有任何有用的建议,只需修改所有nginx配置即可。