Apache-2.2
通過埠號密碼保護和服務 Apache 站點?
我正在嘗試設置客戶網站的受密碼保護的開發版本(Plone CMS 驅動)。
實時站點在埠 7373 上提供服務,並映射到公共 www 埠 80。
“開發”站點在埠 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>
您的 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 站點。