これまでApacheはそこそこ使ってきたのですが、Ubuntu Linux上のApacheの使い方を全然知らなかったので、メモ。
モジュールの追加方法とか、VirtualHostの追加方法とか、やり方が単に設定ファイルを編集するだけじゃないんですねー。
今回は、VirtualHostに簡単にフォワードプロキシを立てるテーマをサンプルに、手順をメモしていきたいと思います。
以降の手順は、Ubuntu LinuxにApache自体はインストール済みのものとし、以下のディレクトリ上でコマンドを実行しているものとします。
$ 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コマンドを使うようです。