Настройка Apache, FCGI и Java

У меня есть Java-программа, к которой я пытаюсь получить доступ через мой веб-сервер Apache 2.4.7 локально. Сначала я настроил его в качестве обратного прокси-сервера с помощью mod_proxy_fcgi, в результате чего мне пришлось бы запускать веб-сервер с конфигурацией (1), запускать java-программу вручную из командной строки каждый раз, когда я запрашивал веб-страницу (2), затем я перешел к правильной ссылке со строкой запроса (3). Это сработало для моего тестирования и вернуло JSON из Java-программы.

//(1) The configuration for the proxy that works
<IfModule proxy_fcgi_module> 
    ProxyPass /doTheThings/ fcgi://localhost:4000/
</IfModule>
<Proxy fcgi://localhost:4000/>
    ProxySet retry=0
</Proxy>

//(2) Command I entered into command line
java -DFCGI_PORT=4000 matdbquery/MatDbQuery  each time

//(3) The URL I would use
localhost/doTheThings/?noUpdate=false&whichData=layoutData 


Теперь я хочу сделать это так, чтобы мне не приходилось каждый раз запускать Java-программу вручную. Apache завершит мой Java-процесс, когда он использует mod_proxy_fcgi, поэтому он больше не будет принимать новые запросы, похоже, именно так и должен работать mod_proxy_fcgi, поэтому я решил начать использовать mod_fcgid. Java-программа уже использовала пакет FCGI от fastcgi.com, поэтому никаких изменений там не было. Теперь я застрял на том, что мне нужно поместить в файл конфигурации Apache. Это только усложняется, потому что я не могу отладить проблему, так как не знаю, какие ошибки может вызывать java.exe или какая команда Apache фактически выполняется даже с отладкой LogLevel.

(1) Где FCGI_PORT учитывает эту настройку с помощью mod_fcgid?
(2) При вызове java.exe вы никогда не включаете.class в имя. Я не вижу, как я могу контролировать фактическое имя файла, которое Apache передает FcgidWrapper, какую директиву использовать (, , ), чтобы указать, для каких файлов нужны AddHandler и FcgidWrapper, или как я бы даже состояние AddHandler без использования расширения файла.class

//Sample of a configuration that I tried so you can see my mindset?
<Files ~ "\.class$">
    Options ExecCGI
    AddHandler fcgid-script .class
    FcgidWrapper "\"C:/Program Files/Java/jre7/bin/java.exe\" -DFCGI_PORT=4000" virtual
</Files>

Если кажется, что я полностью упускаю какой-то процесс работы FastCGI или Apache, объяснение было бы неплохо.

0 ответов

Другие вопросы по тегам