Назад | Перейти на главную страницу

Проблемы с прокси-сервером nginx при передаче php-индекса

У меня возникли небольшие проблемы с тем, чтобы мои индексы работали с nginx, обслуживающим статический контент и передавая php в apache на другом сервере.

В основном, если мне нужно попробовать index.php на внутреннем сервере apache, когда запрашивается xxx.co.uk/. Если на сервере 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;
    }   
}

и apache:

 <VirtualHost 192.168.0.6:80>
     ServerAdmin webmaster@xxx.co.uk
     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>

Ты нуждаешься в try_files и location вставить его.

Пример:

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