Estoy golpeando mi cabeza contra una mesa tratando de descubrir qué está causando el ciclo de redirección en mi configuración de nginx cuando intento acceder a una URL que no existe La configuración es la siguiente:
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;
}
este dominio es un sitio HTML ESTÁTICO simple solo para algunos propósitos de prueba. Esperaría que la directiva error_page se active en respuesta a que PHP-FPM no pueda encontrar los archivos dados, ya que tengo fastcgi_intercept_errors; en el bloque http y nave error_page configurado, pero supongo que la solicitud falla incluso antes de eso en algún lugar en las redirecciones internas. Cualquier ayuda sería muy apreciada.
Respuestas:
El culpable es:
try_files $uri $uri/ ;
http://nginx.org/r/try_files (tenga en cuenta que el último parámetro es el código de retorno o URI a la redirección interna)
fuente
$uri/
? Vea el parámetro aquí: github.com/roots/trellis/blob/…Como han dicho otros, este es el culpable:
Crea un bucle de redirección, ya que el último parámetro de
try_files
debe apuntar a la ubicación si no se encuentra el archivo. Lo resolví agregando un=404
, como este:fuente