Есть ли правильный способ заказать раздел Nginx FastCGI? [закрыто]

Ubuntu 16.04
версия nginx: nginx / 1.16.0
pHp7.2 с конфигурацией пула

Есть ли правильный способ заказать раздел FastCGI веб-сервера nginx за прокси? Строки fastcgi_param идут до или после include. Имеет ли это значение?

  #-- Pass The PHP Scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
    #-- Get REal Ips from proxy
    set_real_ip_from        172.16.0.1;
    fastcgi_param           REMOTE_ADDR $http_x_real_ip;
    include                 denyips.conf;
    try_files               $uri $uri/ /index.php?$args;
    fastcgi_param           HTTPS on;
    fastcgi_index           index.php;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass            unix:/var/run/php/php7.2-fpm-mcfilez.sock;
    fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param           PHP_VALUE "auto_prepend_file=/home/.sites/mcfilez/httpdocs/zecurity/anti-hammer.php";
    fastcgi_read_timeout    600s;
    include                 fastcgi_params;
  }

Благодарю за помощь.

Обновленный заказ

  location ~ \.php$ {
    set_real_ip_from        172.16.0.1;
    include                 denyips.conf;
    include                 fastcgi_params;
    fastcgi_param           REMOTE_ADDR $http_x_real_ip;
    fastcgi_param           PHP_VALUE "auto_prepend_file=/home/.sites/mcfilez/httpdocs/zecurity/anti-hammer.php";
    fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param           HTTPS on;
    fastcgi_index           index.php;
    fastcgi_pass            unix:/var/run/php/php7.2-fpm-mcfilez.sock;
    try_files               $uri $uri/ /index.php?$args;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_read_timeout    600s;
  }
1
задан 17 August 2019 в 07:15
1 ответ

Порядок не влияет на большинство операторов Nginx, хотя есть несколько исключений. .

В частности, на раздел FastCGI влияет то, что директива fastcgi_param автоматически перезаписывает значение параметра, например, в:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;

Вышеупомянутое оставит значение SCRIPT_FILENAME ] как $ request_filename , но ошибки или предупреждения не генерируются.

Тихая перезапись параметров может стать проблемой при использовании директивы include , поскольку дубликаты могут быть скрыты в другой файл.

Как правило, помещайте конкретные fastcgi_param утверждения после включают утверждения.

2
ответ дан 3 December 2019 в 20:06

Теги

Похожие вопросы