ADZ 學習筆記

Ruby/Rails, Startup, Life

設定 Apache Reverse Proxy 傳遞 host header

| Comments

今天 deploy 2 個 rails project 到公司 kvm 其中一台 VM 準備測試,但一直無法以 subdomain 區隔 project,最後找到的原因記錄一下。

前情提要

由於公司只有一個固定 ip、又同時要放 php / rails 做的網站,所以對外用了 apache 架設一個 web proxy 當 front-end web server,在傳遞到各個不同的 web or app server 去。

解法

問題找出來是經過最前端的 web proxy 時、沒有傳遞 HTTP Host 參數給下一位 web server,爬了網路文章找到 apache 的一個參數 ProxyPreserveHost 要設定為 On 才會傳遞給下一個 web server。

<VirtualHost *:80>
  ServerName www.domain.com
  ServerAlias *.domain.com
  ProxyPreserveHost On
  ProxyPass / http://192.168.3.42/
  ProxyPassReverse / http://192.168.3.42/
</VirtualHost>

Comments

comments powered by Disqus