# Apache2 Virtual Host file to proxy Discourse to Thin cluster

<VirtualHost *:80>
ServerName forum.example.org.uk
DocumentRoot /html/discourse/public/
LogLevel debug
#  ErrorLog  /html/discourse/log/error.log
#  CustomLog /html/discourse/log/access.log combined

# Hide some server information, since we can..
Header set Server "Sample Server Name"

 <IfModule mod_security2.c>
   SecRuleEngine On
   # Remove any rules that prevent Discourse from running at all
   SecRuleRemoveById  <rule id>
  </IfModule>

 <Directory /html/discourse/public/>
  Require all granted
 </Directory>

 <LocationMatch "^/assets/.*$">
	# Set caching headers here, providing advice to downstream cache
	Header set Cache-Control "public, max-age = 604800"
 </LocationMatch>

 RewriteEngine On

 <Proxy balancer://thinservers>
   BalancerMember http://127.0.0.1:3000
   BalancerMember http://127.0.0.1:3001
   BalancerMember http://127.0.0.1:3002
 </Proxy>
 
 # Prevent requests for /assets, /javascripts, /plugins and /uploads from being passed upstream
 ProxyPass /assets !
 ProxyPass /javascripts !
 ProxyPass /plugins !
 ProxyPass /uploads !
 
  # Pass the everything else
 ProxyPass / balancer://thinservers/
 ProxyPassReverse / balancer://thinservers/
 ProxyPreserveHost on

 <Proxy *>
   Require all granted
 </Proxy>
 
</VirtualHost>