CLOVER🍀

That was when it all began.

Ubuntu Linuxで、ApacheのモジュールとVirtualHostを追加する

これまでApacheはそこそこ使ってきたのですが、Ubuntu Linux上のApacheの使い方を全然知らなかったので、メモ。

モジュールの追加方法とか、VirtualHostの追加方法とか、やり方が単に設定ファイルを編集するだけじゃないんですねー。

今回は、VirtualHostに簡単にフォワードプロキシを立てるテーマをサンプルに、手順をメモしていきたいと思います。

以降の手順は、Ubuntu LinuxApache自体はインストール済みのものとし、以下のディレクトリ上でコマンドを実行しているものとします。

$ cd /etc/apache2

モジュールの追加

まずは、モジュールの追加。mod_proxy、mod_proxy_http、mod_proxy_connectあたりを追加しましょう。

「mods-available」というディレクトリに、モジュール名.confというファイルがあるか確認します。

mod_proxyなら、こんな感じ。

$ cat mods-available/proxy.load 
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so

モジュールがあったら、a2enmodコマンドで有効化します。

$ sudo /usr/sbin/a2enmod proxy
$ sudo /usr/sbin/a2enmod proxy_http
$ sudo /usr/sbin/a2enmod proxy_connect

モジュールが追加できたら、Apacheを再起動します。

$ sudo service apache2 restart

まあ、コマンド実行時に「restartしてね」って言われますけどね。

Enabling module proxy.
To activate the new configuration, you need to run:
  service apache2 restart

現在有効になっているモジュール一覧は、apache2ctlコマンドで確認しましょう。

$ sudo /usr/sbin/apache2ctl -M

モジュールの無効化は、a2dismodコマンドを使えばよさそうです。

VirtualHostの追加

続いて、VirtualHostの追加。今回は、8080ポートにVirtualHostを追加することにします。

ports.confファイルに、ポート追加。

Listen 8080

「sites-available」ディレクトリ配下に、追加するVirtualHostに関する設定ファイルを追加します。
sites-available/proxy-site.conf

<VirtualHost *:8080>
<IfModule mod_proxy.c>
  ProxyRequests On
  <Proxy *>
    AddDefaultCharset off
    Require all denied
    Require ip 172.17.0.0/16
    Require local
  </Proxy>
</IfModule>
</VirtualHost>

「a2ensite」コマンドで有効化します。ファイル名の、「.conf」部分を除いて指定すればよいみたいです。

$ sudo /usr/sbin/a2ensite proxy-site

あとは、Apacheをreload。

$ sudo service apache2 reload

これで、追加したVirtualHostが有効になります。

現在のVirtualHostも、apache2ctlコマンドで確認できます。

$ sudo /usr/sbin/apache2ctl -S

VirtualHostを無効化する場合は、a2dissiteコマンドを使うようです。