Nginx作为Apache的反向代理不起作用——服务于静态文件



我配置了一个vps服务器,上面有nginx、php-fpm和apache

具有.html扩展名的常见网站被服务器d作为静态网页,如正常,但当我尝试使用动态生成内容的.php页面时,我只看到纯html代码,如Nginx正在提供.txt文件。

Nginx在80上监听,Apache在8080上监听。

禁用的模式:mod_proxy, mod_actions

Nginx服务器块配置:

server {
    server_name example.com www.example.com;
    listen 80;
    root /var/www/example.com;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php;
    }
    location ~ .php$ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://IP:8080;
    }
}

Apache虚拟主机配置:

<VirtualHost *:8080>
    DocumentRoot /var/www/example.com
    ServerName example.com
    <Directory />
        AllowOverride All
    </Directory>
</VirtualHost>

Nginx&Apache都在%username%下工作,也使用%username%作为组。

代码似乎是正确的,但问题是当我加载网页example.com/index.php时,它像一个.txt文件一样加载纯html代码,而不是普通的.php页面。

与info.php相同,带有通常的"<?php phpinfo(); ?>"

我看到了代码,但不是真实的信息页面

您需要配置nginx或Apache来将文件发送到php解释器。

请参阅本文档,将nginxphp-fpmfastcgi_pass指令一起使用。

请参阅本文档以使用Apache和mod_php