Я пытаюсь переместиться от использования Adobe ColdFusion к использованию Railo. Приложение, которое я пытаюсь переместить, полагается на наличие веб-сервера, проверяют стандартную аутентификацию, но затем должен знать имя пользователя аутентифицируемого пользователя с помощью #REMOTE_USER#
переменная.
Я пытался делать дамп объема cgi, и просто кажется, что переменная не становится установленной. Я откалывал при получении этого движения приблизительно в течение новой недели и застреваю.
Так, я наконец понял его. Как он сказал, мне потребовалась, по крайней мере, неделя для получения этого. Так, я совместно использую свои примечания по тому, как настроить новую машину для этого, таким образом, никто больше не должен проводить столько времени, сколько я сделал понимание этого. Ключевая вещь, кажется, что Вы хотите проксировать к railo использование протокола AJP вместо HTTP, и Вы хотите сказать коту, что это не должно делать аутентификации (который позволит ему передать переменную через нетронутый).
Позволяют нам начать:
apt-get install apache2 mysql-server apache2-utils
a2enmod proxy_ajp
service apache2 restart
.
Загрузка стандартная версия установщика 64 битов, перечисленная на странице в http://www.getrailo.org/index.cfm/download/ .
Делают его исполняемым файлом:
chmod +x <file_you_just_downloaded>
Выполнение это:
./<file_you_just_downloaded>
Выбор все значения по умолчанию.
.
хорошо, теперь отредактируйте файлы конфигурации как это:
=== modified file '/etc/apache2/apache2.conf'
--- /etc/apache2/apache2.conf 2014-10-10 00:22:11 +0000
+++ /etc/apache2/apache2.conf 2014-10-10 00:27:48 +0000
@@ -223,18 +223,24 @@
<IfModule mod_proxy.c>
<Proxy *>
Allow from 127.0.0.1
+
+ AuthType Basic
+ AuthName "Employee Login"
+ AuthBasicProvider file
+ AuthUserFile /etc/apache2/.htpasswd
+ Require valid-user
</Proxy>
ProxyPreserveHost On
- ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
- ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ http://127.0.0.1:8888/$1$2
- ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
+ ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://127.0.0.1:8009/$1$2
+ ProxyPassMatch ^/(.+\.cfchart)(/.*)?$ ajp://127.0.0.1:8009/$1$2
+ ProxyPassMatch ^/(.+\.cfml)(/.*)?$ ajp://127.0.0.1:8009/$1$2
# optional mappings
#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
- ProxyPassReverse / http://127.0.0.1:8888/
+ ProxyPassReverse / ajp://127.0.0.1:8009/
</IfModule>
=== modified file '/etc/apache2/sites-available/000-default.conf'
--- /etc/apache2/sites-available/000-default.conf 2014-10-10 00:12:20 +0000
+++ /etc/apache2/sites-available/000-default.conf 2014-10-10 00:31:59 +0000
@@ -26,6 +26,13 @@
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
+ <Directory /var/www/html>
+ AuthType Basic
+ AuthName "Employee Login"
+ AuthBasicProvider file
+ AuthUserFile /etc/apache2/.htpasswd
+ Require valid-user
+ </Directory>
</VirtualHost>
Используя htpasswd программу, создайте .htpasswd
файл в /etc/apache2
, Если Вы хотите, чтобы некоторые сайты аутентифицировались и некоторые не, можно поместить раздел прокси в виртуальном определении хостов и настроить по мере необходимости на виртуальный хост.
Редактирование /opt/railo/tomcat/config/server.xml
=== modified file '/opt/railo/tomcat/config/server.xml'
--- /opt/railo/tomcat/config/server.xml 2014-10-10 00:34:48 +0000
+++ /opt/railo/tomcat/config/server.xml 2014-10-10 00:36:33 +0000
@@ -89,7 +89,7 @@
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
+ <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" />
+ <Connector port="8010" protocol="AJP/1.3" tomcatAuthentication="false" secure="true" scheme="https"/>
<!-- An Engine represents the entry point (within Catalina) that processes -->
Перезапуск Railo/Tomcat:
/opt/railo/railo_ctl restart
Теперь, Railo должен поместить основное подлинное имя пользователя в cgi.remote_user. Я думал, что мне, возможно, придется попытаться поместить что-то, что копирует это в #REMOTE_USER# в localconfig/application.cfm. Но это уже, кажется, то же самое. Второй коннектор AJP на порте 8010 для Вас для проксирования к от включенных виртуальных хостов SSL в Apache. Таким образом, если у Вас есть включенный виртуальный хост SSL, прокси для портирования 8010 вместо 8 009. Тем путем Railo установит переменные, который позволяет ColdFusion, который он выполняет, знают, что он использует SSL.