Apache HTTP Server

オンラインドキュメント

https://httpd.apache.org/docs/2.4/

https://httpd.apache.org/docs/2.4/ja/howto/auth.html

Windows向けバイナリのダウンロード

https://www.apachelounge.com/download/

Fedora33での環境の構築

以下を実行して、インストール、自動起動設定、開始する。

# yum install httpd
# systemctl enable httpd
# systemctl start httpd
1
2
3

使い方

Windwosのサービスとしてインストールする方法

コマンドプロンプトで以下を実行する。サービスに Apache2.4 の名称でインストールされる。

httpd.exe -k install
1

サービスの名称を指定してインストールしたい場合は、以下を実行する。

httpd.exe -k install -n "Apache2.4 for static contents"
1
httpd.exe -k install -n "Apache2.4 for application server"
1

なお、アンインストールしたい場合は、以下を実行する。

httpd.exe -k uninstall -n "Apache2.4"
1

ローカルPCからのみアクセスを許可する方法

C:\Apache24\conf\httpd.conf の内容を次のように記述する。

<Directory "${SRVROOT}/htdocs">
  #Require all granted  # コメントアウトする
  Require all denied    # 追記する
  Require local         # 追記する
</Directory>
1
2
3
4
5

特定のIPアドレスのPCからのみアクセスを許可する方法

C:\Apache24\conf\httpd.conf の内容を次のように記述する。

<Directory "${SRVROOT}/htdocs">
  #Require all granted     # コメントアウトする
  Require all denied       # 追記する
  Require ip 192.168.10.2  # 追記する
  Require ip 192.168.10.3  # 追記する
</Directory>
1
2
3
4
5
6

Basic認証ユーザの作成

最初のuser1を作成する場合は次のコマンドを実行する。

H:\apache24> C:\Apache24\bin\htpasswd.exe -c htpasswd user1
1

2人目以降のユーザを作成する場合は次のコマンドを実行する。

H:\apache24> C:\Apache24\bin\htpasswd.exe htpasswd user2
1

Basic認証グループの作成

グループ作成のコマンドは用意されておらず、手動でファイルの作成を行う。

ディレクトリ H:\apache24 に次のような書式のファイル htgroup を作成する。

group1: user1 user2
group2: user3
group3: user1 user4 user5 user6
1
2
3

/private/ に対して group3 のユーザのみを許可する場合、C:\Apache24\conf\httpd.conf の内容を次のように記述する。

<Location /private/>
  AuthName "Private Authentication"
  AuthType Basic
  AuthUserFile "H:/apache24/htpasswd"
  AuthGroupFile "H:/apache24/htgroup"
  
  Require group group3
</Location>
1
2
3
4
5
6
7
8

リバースプロキシの設定

httpd.conf で LoadModule proxy_module modules/mod_proxy.so と LoadModule proxy_http_module modules/mod_proxy_http.so を有効にする。

すべてのリクエストを http://127.0.0.1:8080/ へ転送する場合、httpd.conf で最終行に以下を追記する。

ProxyRequests Off
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
1
2
3