Смотрите часть, где указано proxy_pass в location/ блоке. Для try_files установлено значение $uri $uri/ /index.php?$query_string, если запрошенный адрес не удается открыть, он перенаправит на /index.php?$query_string.
Но также если и на /index.php перенаправляет, отсюда и бесконечный цикл.
Конфиг должен быть примерно такой:
Nginx домена
server {
listen 80;
server_name domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Nginx в докере
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/domain.com/public;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}