У меня возникли небольшие проблемы с тем, чтобы мои индексы работали с 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;
}