「Apache」の版間の差分

提供: fukudat.net
ナビゲーションに移動検索に移動
(ページの作成:「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/fukudat.net.crt
+
SSLCertificateFile /etc/ssl/certs/XXXXXXXXXX.crt
SSLCertificateKeyFile /etc/ssl/private/fukudat.net.key
+
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 はポート番号。