Wie kann ich Railo und Apache auf Ubuntu installieren und einen grundlegenden Authentifizierungsbenutzernamen an Railo übergeben?

Wie kann ich Railo und Apache auf Ubuntu installieren und einen grundlegenden Authentifizierungsbenutzernamen an Railo übergeben?

Ich versuche, von Adobe ColdFusion auf Railo umzusteigen. Die Anwendung, die ich migrieren möchte, erfordert, dass der Webserver die grundlegende Authentifizierung überprüft, muss dann aber den Benutzernamen des authentifizierten Benutzers mithilfe der #REMOTE_USER#Variablen kennen.

Ich habe versucht, einen Dump des CGI-Bereichs zu erstellen, aber es scheint, als würde die Variable nicht gesetzt. Ich habe etwa eine Woche lang daran herumgebastelt, das zum Laufen zu bringen, und stecke nun fest.

Antwort1

Also, ich habe es endlich herausgefunden. Wie gesagt, ich habe mindestens eine Woche gebraucht, um das zu verstehen. Ich teile also meine Notizen darüber, wie man eine neue Maschine dafür einrichtet, damit niemand so viel Zeit damit verbringen muss wie ich, das herauszufinden. Der Schlüssel scheint zu sein, dass Sie mit dem AJP-Protokoll statt mit HTTP als Proxy zu Railo kommunizieren möchten und Tomcat mitteilen möchten, dass keine Authentifizierung erforderlich ist (wodurch die Variable unverändert durchgelassen wird).

Lass uns anfangen:

apt-get install apache2 mysql-server apache2-utils
a2enmod proxy_ajp
service apache2 restart

.

Installieren Sie Railo:

Laden Sie die 64-Bit-Version des Standardinstallationsprogramms herunter, die auf der Seite aufgeführt ist unterhttp://www.getrailo.org/index.cfm/download/.

Machen Sie es ausführbar:

chmod +x <file_you_just_downloaded>

Starte es:

./<file_you_just_downloaded>

Wählen Sie alle Standardeinstellungen aus.

.

Ok, bearbeiten Sie jetzt die Konfigurationsdateien wie folgt:

=== 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>

Erstellen Sie mit dem Programm htpasswd eine .htpasswdDatei in: /etc/apache2Wenn Sie möchten, dass einige Sites authentifiziert werden und andere nicht, können Sie den Proxy-Abschnitt in die Definition der virtuellen Hosts einfügen und bei Bedarf für jeden virtuellen Host anpassen.

Bearbeiten/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 neu starten:

/opt/railo/railo_ctl restart

Jetzt sollte Railo den grundlegenden Authentifizierungsbenutzernamen in cgi.remote_user einfügen. Ich dachte, ich müsste vielleicht versuchen, etwas einzufügen, das das in #REMOTE_USER# in localconfig/application.cfm kopiert. Aber das scheint schon dasselbe zu sein. Der zweite AJP-Connector auf Port 8010 ist für Sie als Proxy von SSL-fähigen virtuellen Hosts in Apache. Wenn Sie also einen SSL-fähigen virtuellen Host haben, verwenden Sie den Proxy zu Port 8010 statt zu 8009. Auf diese Weise setzt Railo Variablen, die dem laufenden ColdFusion mitteilen, dass es SSL verwendet.

verwandte Informationen