後へ      Topへ      次へ

WEB サーバー: Apache

Railsアプリ1つにつき、1ポートを使用します。
デフォルト 3000 なので、
複数アプリを同時に動かしたいなら、3001, 3002 などそれぞれ必要です。
ただ、
そのポートをそのまま全部公開するのは、
ユーザー的にも管理的にも難があります。

そこで、
独立したWEBサーバーを1つ用意し、そのサーバーを経由する事で、
外部に公開するポートを1つに絞るのが一般的です。
今回は、Apache を使います。

Apache インストール

本稿では、64bit版を使用します。

  1. Apache を動かすためには「Microsoft Visual C++ v14 Redistributable (x64)」が必要です。
    導入していない場合は、
    vc_redist.x64.exe をダウンロード&インストールしてください。
  2. Apache Lounge から、
    Apache 2.4.XX-XXXXXX Win64 (XX はバージョン、XXXXXX は年月日) で最新の ZIP をダウンロードします。
    記載現在は httpd-2.4.66-260107-Win64-VS18.zip です。
  3. ZIP を展開し、
    フォルダ名を Apache24 から Apache24_64 にリネーム。
    C:\Apache24_64\bin になるように配置。
    以降、ここに置いた前提で進めます。
  4. C:\Apache24_64\conf\httpd.conf を以下のように変更。
    1. C:/Apache24C:/Apache24_64 に全置換。
    2. # LoadModule proxy_module modules/mod_proxy.so# を削除。(活かす)
    3. # LoadModule proxy_http_module modules/mod_proxy_http.so# を削除。(活かす)
    4. 一番下に以下を追記
      ProxyPass /book_mgmt/ http://localhost:3000/book_mgmt/
      ProxyPassReverse /book_mgmt/ http://localhost:3000/book_mgmt/
      <Location /book_mgmt/public>
        Require all granted
      </Location>
  5. コマンドプロンプトを管理者権限で起動。
    cd C:\Apache24_64\bin
    httpd.exe -k install -n Apache24_64
    ここで、 「ファイアウォールでブロックされています」との Popup が出たら、
    念のため「パブリックネットワーク」のチェックを外して、
    「キャンセル」ボタンをクリックします。

Apache の起動

  1. Windows のサービスを起動。
  2. 名前「Apache24_64」を探します。
  3. 右クリック → プロパティ
    スタートアップの種類:手動
    サービスの状態:開始
    「OK」ボタンを押す。

動作確認

ブラウザで http://localhost/book_mgmt/ を開きます。
Railsアプリが動作すればOKです。
URL から「:3000」が無くなっている事に注目してください。

今後、
別の Railsアプリ、例えば ```http://localhost:3001/scheduler/``` を追加する場合も、
同様に下記を httpd.conf に追記すれば ```http://localhost/scheduler/``` として使えます。

ProxyPass /scheduler/ http://localhost:3001/scheduler/
ProxyPassReverse /scheduler/ http://localhost:3001/scheduler/
<Location /scheduler/public>
  Require all granted
</Location>

 

ApacheMonitor

毎回サービスを起動するのは手間なので、
C:\Apache24_64\bin\ApacheMonitor.exe を実行します。
タスクバーの隠れたインジケータ列にアイコンApache Iconが増えているのを確認して下さい。
このアイコンをクリック → Apache24_64 で、Start、Stop、Restart が選べます。

今はローカルでの動作なので、
使用しないときは、念のために、Stop しておく事をお勧めします。


後へ      Topへ      次へ