Для сайта wordpress, использующего nginx + php-fpm, мне интересно применить более длинную директиву fastcgi_read_timeout только к каталогу / wp-admin, чтобы избежать тайм-аутов для трудоемких административных задач.
Единственная проблема с приведенным ниже примером кода - это когда я посещаю http://webpage.org/wp-admin Я получаю 404. Когда я посещаю http://webpage.org/wp-admin/index.php публикаций на странице.
Используя директиву nginx add-header для отладки, я смог определить это при посещении http://webpage.org/wp-admin nginx выбирает location ~ .php $ вместо location ^ ~ / wp-admin.
Есть идеи, как это решить? Спасибо
location ^/wp-admin/.*.(php|phps)$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_keep_conn on;
fastcgi_read_timeout 120;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_keep_conn on;
}
try_files
для блока/wp-admin
вы можете попробовать URI в качестве каталога (посколькуwp-admin
является каталогом в Wordpress), прежде чем возвращать 404. Так что измените его, чтобы читатьtry_files $uri $uri/ =404;
С точки зрения приоритета ваша конфигурация верна. - person Keenan Lawrence   schedule 15.11.2016curl -I http://webpage.org/wp-admin
для проверки заголовков из интерфейса командной строки (Unix), но отладка Chrome или Firebug одинаково хороши. - person Keenan Lawrence   schedule 16.11.2016