Я бьюсь головой о таблицу, пытаясь выяснить, что вызывает цикл перенаправления в моей конфигурации nginx при попытке получить доступ к URL, который не существует. Конфигурация идет следующим образом:
server {
listen 127.0.0.1:8080;
server_name .somedomain.com;
root /var/www/somedomain.com;
access_log /var/log/nginx/somedomain.com-access.nginx.log;
error_log /var/log/nginx/somedomain.com-error.nginx.log debug;
location ~* \.php.$ {
# Proxy all requests with an URI ending with .php*
# (includes PHP, PHP3, PHP4, PHP5...)
include /etc/nginx/fastcgi.conf;
}
# all other files
location / {
root /var/www/somedomain.com;
try_files $uri $uri/ ;
}
error_page 404 /errors/404.html;
location /errors/ {
alias /var/www/errors/;
}
#this loads custom logging configuration which disables favicon error logging
include /etc/nginx/drop.conf;
}
Этот домен является простым STATIC HTML сайтом только для некоторых целей тестирования. Я ожидаю, что директива error_page сработает в ответ на то, что PHP-FPM не сможет найти данные файлы, так как у меня fastcgi_intercept_errors; в http-блоке и nave error_page настроен, но я предполагаю, что запрос завершится неудачно даже до этого где-то на внутренних перенаправлениях Любая помощь приветствуется.
Ответы:
Виновником является:
try_files $uri $uri/ ;
http://nginx.org/r/try_files (обратите внимание, что последний параметр - это код возврата или URI для внутреннего перенаправления)
источник
$uri/
? См. Параметр здесь: github.com/roots/trellis/blob/…Как уже говорили другие, это виновник:
Это создает цикл перенаправления, поскольку последний параметр
try_files
должен указывать на местоположение, если файл не найден. Я решил это, добавив=404
, как это:источник