通过端口号密码保护并提供 Apache 站点服务吗?

通过端口号密码保护并提供 Apache 站点服务吗?

我正在尝试设置一个密码保护客户网站的开发版本(Plone CMS 驱动)。

实时站点服务于端口 7373,并映射到公共 www 端口 80。

“dev”站点在端口 8383 上运行,并映射到端口 8111。

我目前无权访问客户端的 DNS 记录,因此无法设置子域,但 IP 和不同的端口号可以。

但是,我不知道如何在仍为实时网站提供服务的同时,用密码保护开发网站。我尤其困惑的是,保护设置似乎只针对文件夹,而不是网站?

下面是我拥有的最好的客人(基于我相当缺乏的 apache-foo),但这仅适用于实时站点,而不是开发站点,或者触发密码!

<VirtualHost *:80>
 ServerAlias www.site.com

ProxyRequests Off
 <Proxy *>
   Order deny,allow
   Allow from all
 </Proxy>

  ProxyPreserveHost On
  ProxyPass / http://localhost:7373/VirtualHostBase/http/site.com:80/plonesite/VirtualHostRoot/
  ProxyPassReverse / http://localhost:7373/VirtualHostBase/http/site.com:80/plonesite/VirtualHostRoot/


</VirtualHost>

<VirtualHost 123.456.789.123:8111>

<Location /plonesitetest/>
  AuthType Basic
  AuthName "Dev Server"
  AuthUserFile "/home/admin/.htpasswd"
  Require valid-user
</Location>


ProxyRequests Off
 <Proxy *>
   Order deny,allow
   Allow from all
 </Proxy>

  ProxyPreserveHost On
  ProxyPass / http://localhost:8383/VirtualHostBase/http/123.456.789.123:8111/plonesitetest/VirtualHostRoot/
  ProxyPassReverse / http://localhost:8383/VirtualHostBase/http/123.456.789.123:8111/plonesitetest/VirtualHostRoot/


</VirtualHost>

答案1

您的 ProxyPass 行看起来有点混乱,端口号位于 URL 的中间。这真的是 plone 服务器设置来处理传入请求的方式吗(文件/目录名称中的端口号)?

代理的内容非常有顺序性。快速检查 apache 文档后发现,ProxyPass 行可能在 Location 行之前启动,这可能会绕过身份验证内容。不妨尝试以下方法:

<Location /plonesitetest/>
  AuthType Basic
  AuthName "Dev Server"
  AuthUserFile "/home/admin/.htpasswd"
  Require valid-user
  ProxyPass http://localhost:8383/VirtualHostBase/http/123.456.789.123:8111/plonesitetest/VirtualHostRoot/
  ProxyPassReverse http://localhost:8383/VirtualHostBase/http/123.456.789.123:8111/plonesitetest/VirtualHostRoot/
</Location>

这将代理请求http://123.456.789.123:8111/plonesitetest/进入 plone 网站。

答案2

Respost:
<VirtualHost *:8282>
    ServerName www.gpscoder.com
    ProxyPass / http://www.gpscoder.com:8080/
    ProxyPassReverse / www.gpscoder.com:8080/
    ProxyPreserveHost on
    <Proxy *>
        AuthType Basic
        AuthName "Dev Server"
        AuthUserFile "/var/www/xxxxxxx/.htpasswd"
        Require valid-user
    </Proxy>
</VirtualHost>

答案3

现场直播

<VirtualHost *:80>
    ServerName siteurl.com
    DocumentRoot "/path/to/live/site"
    ProxyPreserveHost On
    ProxyRequests Off
    Proxypass / http://siteurl.com:7373/
    ProxypassReverse / http://siteurl.com:7373/
</VirtualHost>

然后对于你的开发网站

<VirtualHost *:8111>
    ServerName siteurl.com
    DocumentRoot "/path/to/dev/site"
    ProxyPreserveHost On
    ProxyRequests Off
    Proxypass / http://siteurl.com:8383/
    ProxypassReverse / http://siteurl.com:8383/
    <Proxy *>
        AuthUserFile /home/admin/.htpasswd
        AuthType Basic
        AuthName "Dev Server"
        Require valid-user
    </Proxy>
</VirtualHost>

答案4

会有所帮助。

Google 的第一个结果:vhost password

相关内容