読者です 読者をやめる 読者になる 読者になる

Apacheのプロキシを使ってMongrelのポート(3000番)を80番に転送

Apache Rails

以下のコマンドでプロキシモジュールを有効にします。

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_connect

/etc/apache2/mods-available/proxy.confにAllow from allの記述を追加します。

<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Deny from all
    Allow from all
    #Allow from .example.com
</Proxy>

VirtualHostは以下のように設定します。

<VirtualHost *:80>
    ServerName www.example.com
    ServerAdmin webmaster@example.com

    ProxyRequests off
    ProxyPass / http://localhost:3000/
    <Location />
        ProxyPassReverse http://localhost:3000/
        ProxyPassReverseCookieDomain localhost www.example.com
        ProxyPassReverseCookiePath / /
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

Apache+MongelでRailsを動かしたときにForbiddenと表示のときは、VirualHostは以下のように設定していました。

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /path/to/web/application
    ServerName www.example.com
    ErrorLog logs/www.example.com-error_log
    CustomLog logs/www.example.com-access_log combined
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

こちらは最新のバージョンで動くか確認していませんが、後者のほうが記述はすっきりしているように思います。