настройка Nginx: index.html и index.php в разных каталогах

SN
На сайте с 04.07.2013
Offline
84
974

Всем привет!

В nginx.conf есть такие строки

root /home/site/www;
index index.html index.php;

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/site/php$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

Дело в том, что у меня индексные файлы в разных каталогах:

/home/site/www/index.html

и

/home/site/php/index.php

Как мне прописать, чтобы если нет индексного файла по первому адресу /home/site/www/index.html запускался файл /home/site/php/index.php ?

Andreyka
На сайте с 19.02.2005
Offline
822
#1

Поставить обработчик 404 ошибки

Не стоит плодить сущности без необходимости
SN
На сайте с 04.07.2013
Offline
84
#2
Andreyka:
Поставить обработчик 404 ошибки

Спасибо за ответ!

Скажите, а как это скажется на производительности, если я поставлю условный оператор в конфиг?

Еще вопрос:

Подскажите, в документации nginx (http://nginx.org/ru/docs/http/ngx_http_index_module.html) есть такие указания:

В конце списка может стоять файл с абсолютным путём. Пример:
index index.$geo.html index.0.html /index.html.

Я прописал у себя так:

index index.html /home/site/php/index.php;

но все равно получаю 404. В чем ошибка?

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Особо никак не скажется, так как вся производительность упрется в сам php скрипт

R
На сайте с 24.08.2013
Offline
19
#4

Правильнее будет так:

root /home/site/www;
index index.html;

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/site/php$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

nginx пытается отдать скрипт php (строка 2), но так как отдает только статику, он не выполняет php-скрипты, эту роль он отдает php-fpm, для которого индексным файлом прописан index.php.

или попробуйте так:

root /home/site/www;

location / {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php index.html;
fastcgi_param SCRIPT_FILENAME /home/site/php$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Услуги администрирования серверов (/ru/forum/906511), ускорю работу сайта, недорого!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий