nginx Виртуальный хост с PHP FPM через сокет, все на index.php, Примеры конфигурации (в т.ч. Ubuntu Linux)

PHP FPM

Предположим, что у нас конфиг вроде (взят из примера):

server {
  listen *:28500;
  server_name example.loc;
  root /var/www/example;
  index index.php;
  location / {}
}

Можно добавить секцию localtion, так чтобы в итоге получилось:

server {
  listen *:28500;
  server_name example.loc;
  root /var/www/example;
  index index.php;


  location ~ \.php$ {
     try_files $uri =404;
     include /etc/nginx/fastcgi.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
}

-- такая конфигурация позволит отдавать .php файлы на обработку службе fpm (в данном случае php7.4-fpm)

Все обращения к нестатическим файлам на index.php

Для этого можно добавить секцию с использование инструкции try_files:

 location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

Получим:

server {
  listen *:28500;
  server_name example.loc;
  root /var/www/example;
  index index.php;

 location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
     try_files $uri =404;
     include /etc/nginx/fastcgi.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
}