Я пытаюсь настроить полный обратный прокси-сервер Nginx с полным стеком (как гласит название, очевидно), и я немного борюсь, когда дело доходит до интерпретации кода с помощью PHP- FPM.Full-stack Nginx обратного проксирования и индекса PHP
Вот так называемая Торцевой часть процесса проксирования (который не используется для непосредственного обслуживания файлов, а для перенаправления клиента в стороне фоновых серверов):
server {
listen xxx.xxx.xxx.xxx:80;
server_name localhost;
# logs...
# Here begins the reverse-proxying
# Test 2nd backend server
location /test {
proxy_pass http://127.0.0.1:82/;
}
# default main site (has to be at the end since location checks file hierarchy)
location/{
proxy_pass http://127.0.0.1:81/;
}
И то вот мои два обратных серверных блока. Первый основной сайт, который должен быть подан по умолчанию, обращающегося domain.com:
server {
listen 127.0.0.1:81;
server_name main;
# logs...
root /var/www/main;
gzip on;
gzip_types "*";
expires 10m;
location/{
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm.socket;
include /etc/nginx/fastcgi.conf;
}
}
А вот второй «тест» один, который должен получить доступ при попытке domain.com/test:
server {
listen 127.0.0.1:82;
server_name test;
root /var/www/test;
gzip on;
gzip_types "*";
expires 10m;
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm.socket;
include /etc/nginx/fastcgi.conf;
}
}
Делать это с помощью обратного прокси позволит мне на самом деле использовать только один порт, а самое главное, он скрывает, который и сколько виртуальных серверов на самом деле работает здесь.
Итак, в чем проблема? Ну, это больше о том, как PHP и индексы управляются обратным прокси-сервером nginx, чем о обратном проксировании.
Когда я использую файлы index.html на обоих серверах: 81 и: 82, он работает нормально, директива index отлично работает, и сервер возвращает /var/www/main/index.html при доступе к домену. com и /var/www/test/index.html при доступе к домену.com/test.
Однако проблема возникает, когда я использую файлы index.php. В этом случае только использование URL-адресов там оставляет меня с ошибкой 404 в обоих случаях. Мне нужно явно указать index.php в URL, например. domain.com/test/index.php, чтобы он работал, чего я не хочу.
Я не нашел ни одной темы или документации, касающейся такого конкретного случая, и именно поэтому я прихожу сюда, чтобы спросить, есть ли у кого-нибудь больше информации о поведении индексов с PHP?
Спасибо, заранее за ваши ответы, и я с удовольствием возьму все, что у вас есть на данный момент, так как я долгое время боролся с этой проблемой.
я, видимо, по ошибке забыл поставить его, но у меня было это в: блок сервера 81, и он не будет работать. Я попытался поместить его в место/{} блок, и он тоже не работает ... Я немного озадачен этим. EDIT: Я действительно пытался разместить его во многих местах, не получив его на работу, в том числе в местоположении/{} сервера «frontend». –