手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Apache リバースプロキシの設定

Ubuntu 26.04 サーバー管理ガイドに戻る

Apache は Web サーバーとしてだけでなく、バックエンドサービスへ転送するリバースプロキシとしても使えます。

この記事では、Apache の基本設定と TLS 設定が終わっている前提で、ProxyPass、ProxyPassReverse、X-Forwarded-Proto、アクセス制限、WAF 除外の考え方を整理します。

リバースプロキシの用途

  • 外部からの HTTPS を Apache で受け、内部サービスへ転送する
  • 複数サービスをパスや VirtualHost で振り分ける
  • 管理画面だけ接続元 IP を制限する
  • WAF や TLS 終端を Apache 側に集約する

必要なモジュールを有効化する

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo a2enmod headers

基本設定例を作る

ProxyPreserveHost On
ProxyRequests Off
RequestHeader set X-Forwarded-Proto https

<Proxy *>
    Require all granted
</Proxy>

ProxyPass / http://backend.example.local/
ProxyPassReverse / http://backend.example.local/

HTTPS 用 include に配置する

sudo tee /etc/apache2/https-custom-config.d/app-reverse-proxy.conf >/dev/null <<'EOF'
ProxyPreserveHost On
ProxyRequests Off
RequestHeader set X-Forwarded-Proto https

<Proxy *>
    Require all granted
</Proxy>

ProxyPass / http://backend.example.local/
ProxyPassReverse / http://backend.example.local/
EOF

管理画面の接続元を制限する

アプリケーションの管理画面は、Apache 側で接続元 IP を制限すると防御層を増やせます。

<Location /wp-admin>
    <RequireAny>
        Require ip 192.0.2.0/24
        Require ip 2001:db8::/32
    </RequireAny>
</Location>

<Location /wp-login.php>
    <RequireAny>
        Require ip 192.0.2.0/24
        Require ip 2001:db8::/32
    </RequireAny>
</Location>

WebSocket を扱う場合

WebSocket を使うサービスでは proxy_wstunnel を有効にし、必要に応じて ws:// または wss:// の転送を追加します。

ProxyPass /socket ws://backend.example.local/socket
ProxyPassReverse /socket ws://backend.example.local/socket

設定を検証して反映する

sudo apache2ctl -t
sudo apache2ctl -S
sudo systemctl restart apache2

動作確認する

curl -k -I https://127.0.0.1/
sudo tail -n 50 /var/log/apache2/error.log
sudo tail -n 50 /var/log/apache2/access.log

WAF と組み合わせる場合

WAF と組み合わせる場合、バックエンドアプリの正常な POST、JSON、管理 API が誤検知されることがあります。必要な場合は URI と rule ID を絞って除外します。

まとめ

Apache リバースプロキシでは、ProxyPass だけでなく、ProxyPreserveHost、X-Forwarded-Proto、接続元制限、WebSocket、WAF 除外まで含めて設計します。TLS と WAF の土台があると、公開サービスの入口として扱いやすくなります。

Ubuntu 26.04 サーバー管理ガイドに戻る

Ubuntu 26.04 Apache リバースプロキシの設定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る