Apache
Apache2 を Ubuntu で使う時の覚書き。
目次
Install
$ sudo apt-get install apache2
Configure
/etc/apache2
の下に config file が配置される。
設定変更したら、いつも必ず sudo apachectl restart
を実行。
SSL
SSL Certificate で作った鍵ファイルと証明書ファイルと中間証明書ファイルを、それぞれ
- /etc/ssl/private/XXXXXXXXXX.key
- /etc/ssl/certs/XXXXXXXXXX.crt
- /etc/ssl/certs/ca-bundle.ca
に置く。
/etc/apache2/site-available/default-ssl.conf を以下のように編集する。
<IfModule> <VirtualHost _default_:443> ... ServerName fukukdat.net ServerAdmin admin@fukudat.net ErrorLog ${APACHE_LOG_DIR}/ssl_error.log CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLCertificateFile /etc/ssl/certs/XXXXXXXXXX.crt SSLCertificateKeyFile /etc/ssl/private/XXXXXXXXXX.key SSLCertificateChainFile /etc/ssl/certs/ca-bundle.ca ... </VirtualHost> </IfModule>
config ファイルを enable する。
$ cd /etc/apache2/mods-enabled $ sudo ln -s ../mods-available/ssl.conf . $ sudo ln -s ../mods-available/ssl.load . $ sudo ln -s ../mods-available/socache_shmcb.load . $ cd /etc/apache2/sites-enabled $ sudo ln -s ../sites-available/default-ssl.conf .
apache を再起動して、browser で https://SERVER_NAME/ にアクセスしてみる。
$ sudo apachectl restart
あるディレクトリの下を Digest 認証にする
/etc/apache2/conf-available の下に、適当な名前 (例えば digest.conf) を以下のような内容で作成する。 ただし、XXXXX は保護するディレクトリ、YYYYY は htdigest に登録する realm、USER[123] はアクセスを許可するユーザー。
<Location /XXXXX> AuthType Digest AuthName "YYYYY" AuthDigestDomain /XXXXX AuthUserFile /var/www/htdigest require user USER1 USER2 USER3 </Location>
このファイルを /etc/apache2/conf-enabled の下にシンボリックリンクを張る。
$ cd /etc/apache2/conf-enabled $ ln -s ../conf-available/digest.conf .
以下のコマンドで、/var/www/htdigest ファイルにユーザとパスワードを登録する。
$ sudo touch /var/www/htdigest $ sudo htdigest /var/www/htdigest XXXXX YYYYY USER1 $ sudo htdigest /var/www/htdigest XXXXX YYYYY USER2 $ sudo htdigest /var/www/htdigest XXXXX YYYYY USER3
reverse proxy を使って docker-compose 上のサブサーバーを動かす
/etc/apache2/mods-enabled の下に、次のシンボリックリンクを貼る。
$ cd /etc/apache2/mods-enabled $ sudo ln -s ../mods-available/proxy.conf . $ sudo ln -s ../mods-available/proxy.load . $ sudo ln -s ../mods-available/proxy_htmo.load .
/etc/apache2/conf-available の下に、reverse_proxy.conf を以下のような内容で作成する。
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> # Application XXXXX ProxyPass /XXXXX http://localhost:PORT/YYYYY ProxyPassReverse /XXXXX http://localhost:PORT/YYYYY
ただし、/XXXXX はアプリケーションの外向きのパスで、内部では http://localhost:PORT/YYYYY でアクセスできるものとする。PORT はポート番号。