Nginx 代理通过 php 索引问题

Nginx 代理通过 php 索引问题

我在使我的索引与 nginx 一起工作以提供静态内容并将 php 传递到另一台服务器上的 apache 时遇到了一些小问题。

基本上,当我需要它在请求 xxx.co.uk/ 时在后端 apache 服务器上尝试 index.php 时。如果 nginx 服务器上不存在 index.php 或 index.html,我会得到 403 Forbidden。如果我请求 xxx.co.uk/index.php,行为将符合预期,并且 apache 会提供该页面。

有人能提出解决方案吗?我最初的想法是使用 try_files - 但具体如何使用我不确定 - 我的修改没有奏效!

我希望我已经说清楚了,如果没有,请询​​问,我会尝试进一步详细说明。

Nginx 设置:

server
{
   listen 80;
   server_name www.xxx.co.uk xxx.co.uk;
   access_log /srv/www/xxx.co.uk/logs/access.log;
   error_log /srv/www/xxx.co.uk/logs/error.log;

   root /srv/www/xxx.co.uk/public_html;

   index index.php index.html;

   # deny access to apache .htaccess files
   location ~ /\.ht
   {
        deny all;
   }

   location ~* ^.*\.php$ {

        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.0.6:80;
    }   
}

和阿帕奇:

 <VirtualHost 192.168.0.6:80>
     ServerAdmin [email protected]
     ServerName xxx.co.uk
     ServerAlias xxx.co.uk www.xxx.co.uk
     DocumentRoot /srv/www/xxx.co.uk/public_html/
     ErrorLog /srv/www/xxx.co.uk/logs/error.log
     CustomLog /srv/www/xxx.co.uk/logs/access.log combined
     DirectoryIndex index.php
</VirtualHost>

答案1

您需要 atry_files和 alocation来放入它。

例子:

location / {
    try_files $uri $uri/ =404;
}

相关内容