「Apache」の版間の差分
(ページの作成:「Apache2 を Ubuntu で使う時の覚書き。 == Install == <pre> $ sudo apt-get install apache2 </pre> == Configure == <code>/etc/apache2</code> の下に config file…」) |
|||
(同じ利用者による、間の5版が非表示) | |||
8行目: | 8行目: | ||
== Configure == | == Configure == | ||
<code>/etc/apache2</code> の下に config file が配置される。 | <code>/etc/apache2</code> の下に config file が配置される。 | ||
+ | |||
+ | 設定変更したら、いつも必ず <code>sudo apachectl restart</code> を実行。 | ||
=== SSL === | === SSL === | ||
27行目: | 29行目: | ||
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined | CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined | ||
− | SSLCertificateFile /etc/ssl/certs/ | + | SSLCertificateFile /etc/ssl/certs/XXXXXXXXXX.crt |
− | SSLCertificateKeyFile /etc/ssl/private/ | + | SSLCertificateKeyFile /etc/ssl/private/XXXXXXXXXX.key |
SSLCertificateChainFile /etc/ssl/certs/ca-bundle.ca | SSLCertificateChainFile /etc/ssl/certs/ca-bundle.ca | ||
35行目: | 37行目: | ||
</IfModule> | </IfModule> | ||
</pre> | </pre> | ||
+ | |||
+ | config ファイルを enable する。 | ||
+ | <pre> | ||
+ | $ 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 . | ||
+ | </pre> | ||
+ | |||
+ | apache を再起動して、browser で https://SERVER_NAME/ にアクセスしてみる。 | ||
+ | <pre> | ||
+ | $ sudo apachectl restart | ||
+ | </pre> | ||
+ | |||
+ | === あるディレクトリの下を Digest 認証にする === | ||
+ | /etc/apache2/conf-available の下に、適当な名前 (例えば digest.conf) を以下のような内容で作成する。 | ||
+ | ただし、XXXXX は保護するディレクトリ、YYYYY は htdigest に登録する realm、USER[123] はアクセスを許可するユーザー。 | ||
+ | <pre> | ||
+ | <Location /XXXXX> | ||
+ | AuthType Digest | ||
+ | AuthName "YYYYY" | ||
+ | AuthDigestDomain /XXXXX | ||
+ | AuthUserFile /var/www/htdigest | ||
+ | require user USER1 USER2 USER3 | ||
+ | </Location> | ||
+ | </pre> | ||
+ | |||
+ | このファイルを /etc/apache2/conf-enabled の下にシンボリックリンクを張る。 | ||
+ | <pre> | ||
+ | $ cd /etc/apache2/conf-enabled | ||
+ | $ ln -s ../conf-available/digest.conf . | ||
+ | </pre> | ||
+ | |||
+ | 以下のコマンドで、/var/www/htdigest ファイルにユーザとパスワードを登録する。 | ||
+ | <pre> | ||
+ | $ 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 | ||
+ | </pre> | ||
+ | |||
+ | === reverse proxy を使って docker-compose 上のサブサーバーを動かす === | ||
+ | /etc/apache2/mods-enabled の下に、次のシンボリックリンクを貼る。 | ||
+ | <pre> | ||
+ | $ 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 . | ||
+ | </pre> | ||
+ | |||
+ | /etc/apache2/conf-available の下に、reverse_proxy.conf を以下のような内容で作成する。 | ||
+ | <pre> | ||
+ | ProxyRequests Off | ||
+ | |||
+ | <Proxy *> | ||
+ | Order deny,allow | ||
+ | Allow from all | ||
+ | </Proxy> | ||
+ | |||
+ | # Application XXXXX | ||
+ | ProxyPass /XXXXX http://localhost:PORT/YYYYY | ||
+ | ProxyPassReverse /XXXXX http://localhost:PORT/YYYYY | ||
+ | </pre> | ||
+ | ただし、/XXXXX はアプリケーションの外向きのパスで、内部では http://localhost:PORT/YYYYY でアクセスできるものとする。PORT はポート番号。 |
2021年3月31日 (水) 23:47時点における最新版
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 はポート番号。