Я изо всех сил пытался понять логику NginX при обработке порядка расположения, но это все еще вне меня, и я подозреваю, что именно поэтому у меня возникает следующая проблема.
Я запускаю экземпляр SugarCRM, который заблокирован базовой аутентификацией. Есть несколько файлов, таких как ical_server.php, для которых я хочу отключить базовую аутентификацию, чтобы смартфоны могли легко получить доступ к этому подписанному календарю, который уже имеет собственную безопасность на основе токенов.
Это у меня в конф. Но ical_server.php загружается как необработанный php, что предполагает, что он не достигает парсера fastcgi, хотя остальная часть CRM работает нормально.
location /sugarcrm/ {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
location ~ _server.php$ {
auth_basic "off";
}
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_max_temp_file_size 0;
fastcgi_buffer_size 56k;
fastcgi_buffers 16 48k;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Как я могу добиться этого избирательного отключения auth basic?
Поскольку я не могу наградить Алексея Тен правильным ответом через его комментарий, вот рабочий конфиг:
location /sugarcrm/ {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
location ~ _server.php$ {
auth_basic "off";
include /etc/nginx/conf.d/global/fastcgi.conf;
}
try_files $uri =404;
include /etc/nginx/conf.d/global/fastcgi.conf;
}
}
Поскольку, как указывает Алексей, fastcgi не передается по наследству, я должен снова поместить его в папку _server.php $. Благодаря включению он тоже неплохо наводит порядок. Теперь php хорошо разбирается.
(Тот факт, что auth_basic полностью отключен для этого файла, на самом деле не предназначен, но это рассматривается в другом вопросе. Просто упомяну об этом на случай, если кто-то найдет это ...)
Еще раз спасибо, Алексей.