小编Joe*_*oll的帖子

如何使用基本身份验证保护在 Apache2 虚拟主机中反向代理的 Tomcat Web 应用程序?

我无法弄清楚如何添加基本的 HTTP 身份验证以密码保护在生产 Web 服务器上运行的开发测试环境。主站点和测试环境都是虚拟主机,它们使用 AJP 代理为 Tomcat Web 应用程序的单独实例提供服务。我们需要防止公众访问测试环境而不更改Tomcat环境中的web.xml,必须使用Apache而不是Tomcat来实现保护。然而,虚拟主机中的 ProxyPass 和 ProxyPassReverse 指令似乎覆盖了 .htaccess 或我放在 <Directory> 控制块中的任何东西的使用,而似乎我不能在 <VirtualHost> 控制的主体中使用像 AuthType 这样的指令挡在旁边。一世' 我对 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
Run Code Online (Sandbox Code Playgroud)

相关虚拟主机文件/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 …
Run Code Online (Sandbox Code Playgroud)

authentication reverse-proxy virtualhost http-basic-authentication apache-2.2

5
推荐指数
1
解决办法
3656
查看次数