Назад | Перейти на главную страницу

Как создать очень простую внешнюю конфигурацию FastCGI в apache?

У меня есть запущенное извне приложение FastCGI, которое прослушивает сокет '/tmp/foo.sock' и каталог статических файлов в '/ srv / static'. Apache имеет все необходимые разрешения для сокета и каталогов.

Что мне нужно: все запросы, начинающиеся с '/ static', должны обрабатываться apache с использованием содержимого '/ srv / static'. Все остальные запросы должны обрабатываться приложением FastCGI. Вот моя текущая конфигурация виртуального хоста:

<VirtualHost *:80>
        ServerAdmin foo@bar.com
        ServerName www.foo.com
        ServerAlias foo.com

        Alias /static /srv/static

        FastCgiExternalServer /* -socket /tmp/foo.sock    

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

</VirtualHost>

Несмотря на то, что это кажется простым, это вызывает у меня головную боль. В соответствии с http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer первым параметром FastCgiExternalServer должно быть имя файла, которое при совпадении приведет к тому, что apache делегирует запрос внешнему приложению FastCGI. Что мне здесь не хватает?

Первым аргументом FastCgiExternalServer должно быть имя файла, который будет перенаправлять. Этого не должно быть. Это не говорит о том, что подстановочный знак поддерживается. Я не думаю, что использование / srv / static - правильный ответ, вы хотите, чтобы это выполнял Apache.

Согласно FastCGI FAQ, изменить FastCgiExternalServer линия ниже

FastCgiExternalServer /srv/static -socket /tmp/foo.sock 

и попробуй еще раз.