Tengo un trabajo de trabajo de trabajo NGINX / PHP-FPM, pero necesito proxy ciertos archivos PHP a otro servidor. Aquí está lo que tengo, eso no parece estar trabajando.

# clisupp and other supporting files
  location /swsupport/ {
    add_header X-debug-message "Proxied" always;
    proxy_pass http://swsupport;
  }

location ~ \.php$ {
      add_header X-debug-message "A php file was used" always;
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass php:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
  }

Cuando se hace una solicitud como http://localhost/swsupport/clisupp/swtoday/index.php, se maneja por la ubicación php y no la ubicación /swsupport/. Aquí hay una imagen de un ejemplo real. Como puede ver el encabezado X-debug-message correspondiente a la ubicación de PHP.

enter image description here

1
richbai90 13 jul. 2019 a las 07:03

1 respuesta

La mejor respuesta

La expresión regular location tiene prioridad sobre un prefijo normal location a menos que se use el modificador ^~.

En su configuración, los URIs que comienzan con /swsupport/ y finalizan con .php por el bloque location ~ \.php$.

Consulte este documento para obtener más detalles.

Por ejemplo:

location ^~ /swsupport/ { ... }
1
Richard Smith 14 jul. 2019 a las 14:08