How to run foreman-proxy with passenger
I recently decided to run my Foreman-Proxy daemon with Passenger instead of commonly used webrick.
As we will see, the setup is quite simple. I assume that you already have apache and passenger installed
(for Foreman, puppetmasted, …).
As I use Git for my setup, my smart-proxy is located in /opt, I let you fix your paths!
My apache configuration is (for apache2.4):
Listen 8444 <VirtualHost *:8444> ServerName foreman-proxy.example.com ServerAlias proxy1.example.com DocumentRoot /opt/smart-proxy/public RailsAutoDetect On PassengerTempDir /opt/smart-proxy/tmp AddDefaultCharset UTF-8 HostnameLookups On SSLEngine on SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/proxy1.example.com.pem SSLCertificateFile /var/lib/puppet/ssl/certs/proxy1.example.com.pem SSLCACertificateFile /var/lib/puppet/ssl/certs/ca.pem <Directory /opt/smart-proxy/public> Require local Require ip 192.168.0.0/16 10.0.0.0/8 </Directory> CustomLog ${APACHE_LOG_DIR}/foreman-proxy.example.com/access.log combined ErrorLog ${APACHE_LOG_DIR}/foreman-proxy.example.com/error.log </VirtualHost>
I decided to use an other listenning port for apache, but you can use default 8443 port.
As you can see, the SSL configuration is done on apache level and not is smart-proxy anymore.
On proxy side configuration, it’s important to know, that “:trusted_hosts” directive raise a ‘500 Internal Error’.
The bug has been open there : http://projects.theforeman.org/issues/2259
Now, you only have to stop your webrick smart-proxy daemon and restart apache.
Be careful, if you changed your listenning port to update your smart-proxies configuration on Foreman.