nginx и SCRIPT FILENAME
Перелезаю на своем хостинге с апача на nginx и пока не очень хорошо ориентируюсь в конфигах. Решил устроить себе поддомены с админкой, багтрекером, блекджеком и шлюхами:
server {
listen 80;
server_name "~^(.+).supersite.name$";
set $sub $1;
root /srv/http/hosts/supersite/$sub;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ index.php$query_string =404;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#Этот локейшен настроен по примеру из the bug genie, который и планируется использовать как багтрекер
location ~ /(.*) {
set $suburi $1;
try_files $uri $uri/ /index.php?url=$suburi&$args =404;
}
}
bt.supersite.name верно ссылается на index.php, bt.supersite.name/DISCLAIMER.TXT читает ровно то, что нужно, а bt.supersite.name/login отваливается, не находя файл, в лог ошибок валится следующее:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
ЧЯДНТ?
server {
listen 80;
server_name "~^(.+).supersite.name$";
set $sub $1;
root /srv/http/hosts/supersite/$sub;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ index.php$query_string =404;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#Этот локейшен настроен по примеру из the bug genie, который и планируется использовать как багтрекер
location ~ /(.*) {
set $suburi $1;
try_files $uri $uri/ /index.php?url=$suburi&$args =404;
}
}
bt.supersite.name верно ссылается на index.php, bt.supersite.name/DISCLAIMER.TXT читает ровно то, что нужно, а bt.supersite.name/login отваливается, не находя файл, в лог ошибок валится следующее:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
ЧЯДНТ?
1 ответов
1. я бы не рекомендовал делать _один_ вайлкард виртуал-хост для разного типа приложений
лучше разбей на несколько server-блоков, что-бы не было путаницы и конфликта рерайтов
2. зачем ты возвращаешь код 404 для /index.php?url=$suburi&$args ?
(=404 означает, что для /index.php?url=$suburi&$args установить статус 404)