Apache

提供: fukudat.net
ナビゲーションに移動検索に移動

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 はポート番号。