Мне нужно запускать приложения ColdFusion на моем существующем сервере PHP (Linux). Я установил railo с tomcat на сервер, но Railo забирает весь трафик. Я хочу, чтобы он был установлен так, чтобы только запросы к файлам в / webapps / ROOT / проходили через сервер Railo, а все остальные - через существующий сервер php. Сервер мне не принадлежит, и моя установка Railo ломает сайты других пользователей.
Есть ли способ сделать это?
P.S .: Я не очень хорошо разбираюсь в Linux, а компания, которой он принадлежит, оказывает полную поддержку, поэтому разговор с ними - это шаг вперед и два назад.
Вам необходимо установить mod_jk
или mod_proxy
для пересылки запросов от Apache к Tomcat.
Вот пример с mod_jk
.
webapps
папку и переименуйте в railo.war
.mod_jk
Создать / отредактировать workers.properties
файл, как показано ниже:
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
Создать mod_jk.conf
файл:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
JkShmFile /var/log/httpd/jk.shm
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
<VirtualHost *:80>
ServerName your.domain.com
JkMount /railo/* worker1
</VirtualHost>
Добавьте виртуальный хост для Tomcat:
<Host name="your.domain.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/railo" docBase="railo"/>
</Host>
Это означает, что запрос к http://your.domain.com/railo перейдем к Tomcat по адресу railo
контекст и другие запросы по-прежнему обслуживаются Apache.
Пример Mod Proxy (спасибо Джейми Кругу за упрощение):
httpd.conf
<Proxy *>
Allow from 127.0.0.1
</Proxy>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2
<VirtualHost *:80>
ServerName testhost1
DocumentRoot "/path/to/testhost1"
DirectoryIndex index.html index.cfm
ErrorLog "logs/testhost1-error.log"
CustomLog "logs/testhost1-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerName testhost2
DocumentRoot "/path/to/testhost2"
DirectoryIndex index.html index.cfm
ErrorLog "logs/testhost2-error.log"
CustomLog "logs/testhost2-access.log" common
</VirtualHost>
server.xml (Tomcat)
Убедитесь, что они определены выше определения LOCALHOST
<Host name="testhost1" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/path/to/testhost1" />
</Host>
<Host name="testhost2" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/path/to/testhost2" />
</Host>