Я пытаюсь настроить Пароль защищен разрабатываемая версия клиентского веб-сайта (управляемая 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>
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>
Ваши строки 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.
Живой сайт
<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>
это поможет.
1-й результат для Google: vhost password
.