基本的な HTTP 認証を追加して、実稼働 Web サーバーで実行されている開発テスト環境をパスワードで保護する方法を理解するのに苦労しています。メイン サイトとテスト環境はどちらも、AJP プロキシを使用して Tomcat Web アプリケーションの個別のインスタンスを提供する仮想ホストです。Tomcat 環境で web.xml に変更を加えずにテスト環境に一般ユーザーがアクセスできないようにする必要があります。保護は Tomcat ではなく Apache で実現する必要があります。ただし、仮想ホストの ProxyPass および ProxyPassReverse ディレクティブは、.htaccess または <Directory> コントロール ブロックに配置したものの使用をオーバーライドするようですが、<VirtualHost> コントロールの本体で AuthType などのディレクティブを使用できないようです。横にブロックします。私' m は Apache (または Tomcat) の経験があまりなく、どのディレクティブがどこに適用され、どのディレクティブが他のディレクティブをオーバーライドする可能性があるかについて確信が持てません。変更は運用サーバーで行う必要があるため、ダウンタイムが発生する恐れがあるため、簡単に実験することはできません。
httpd.conf 自体は非常に単純です。
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadFile /usr/lib/libxml2.so
関連する仮想ホスト ファイル /etc/apache2/sites-available/dev443 は次のとおりです。
<IfModule mod_ssl.c>
<VirtualHost dev.mydomain.com:80443>
ServerName dev.mydomain.com:80443
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dev
ProxyPass / ajp://127.0.0.1:8010/
ProxyPassReverse / ajp://127.0.0.1:8010/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/dev/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel info
CustomLog /var/log/apache2/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLCACertificateFile /etc/ssl/certs/intermediate.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
制御ブロック内で AJP プロキシ構成を移動できますか? 認証をサポートしていることを示唆するこの StackOverflow Q&Aを見ました。制御ブロック内でサポートされますか (解決策は httpd.conf にあります)?
現在、ファイアウォールを使用して IP でフィルタリングしていますが、プロジェクトに関係する一部の人々は、自宅からテスト環境にアクセスする必要があり、インターネット接続用の固定 IP アドレスを持っていないため、パスワード保護によりメンテナンスが少なくて済みます。長期的に見て、リモートワークの柔軟性を高めます。
記録として、次のバージョンが含まれます: Apache: 2.2.14 / Tomcat: 7.0.23 / Java: SE 1.6.0_26-b03 / OS: Ubuntu 10.04 LTS