FastCGI + nginx

Всем привет!

Недавно столкнулся с задачей отказаться от apache на сервере по причине нехватки оперативной памяти. Было решено использовать связку nginx + fcgi. Проблема, с которой я столкнулся при настройке сервера nginx для livestreet — отсутствие у движка единой точки входа. После курения мануала у меня получился вот такой конфиг:

<server {
    set             $path_to_project /var/www/girlstogether.ru;
    server_name     yourservername.ru;
    listen          80;

    access_log      /$path_to_project/logs/access.log;
    root            $path_to_project/htdocs;
    autoindex       off;

    location ~ \.php$ {
        try_files $uri  = 404
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME  $path_to_project/htdocs$fastcgi_script_name;
    }

    location @main {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME  $path_to_project/htdocs/index.php;
    }

    location / {
        try_files $uri
                  @main;
        allow all;
    }
}


Видно что тут есть проблемы с дублированием и, возможно, с безопасностью.
Кто нибудь сталкивался с подобной задачей? Как решали?

upd: try_files $uri = 404 (из первого комментария)

11 комментариев

avatar
Секция @main, зачем она?
location ~ \.php$ можно улучшить.
Сделать обработку статики.
fcgi — какой именно? php-fpm?
И обработку php повесить на сокеты.
avatar
@main нужна, чтоб на нее направлять запросы, которые идут не на файлы в папке проекта.
php-cgi
всмысле на юникс-сокеты?
avatar
fpm шустрее.
Да, они самые.
avatar
спасибо за наводку
avatar
И обработку php повесить на сокеты.
а дисковая подсистема не сляжет от 10к юзеров? :)
avatar
Не знаю, я сейчас только на скорость все конфигурирую. Ибо с хай-лоад системами не работал.
avatar
Сильно быстрее юниксные сокеты?
avatar
Я не замерял, но многие советуют вешать php на сокеты.
Если я не прав, можете поделиться линкой на опровержение? Или доказать :)
avatar
avatar
Спасибо, пошел редактировать конфиги.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.