Я пробовал несколько комбинаций ProxyPass, ProxyPassReverse и ProxyHTMLURLMap, но мне все еще не повезло. Я просто хотел бы иметь возможность поразить принтеры в CUPS, перейдя на www.printerhost.com/printers/printername, вместо того, чтобы добавлять порт 631 или заставлять CUPS прослушивать порт 80.
Согласно запросу, вот файл конфигурации:
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule xml2enc_module modules/mod_xml2enc.so
NameVirtualHost *:80
<VirtualHost *:80>
ServerName blah.yours.com
JkMount /* balancer
JkMount /jkmanager jk-status
JkUnMount /cups* balancer
ProxyRequests Off
ProxyPass /cups/ http://localhost:631/
ProxyHTMLURLMap http://localhost:631 /cups
<Location /cups/>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap / /cups/
</Location>
</VirtualHost>
Похоже, проблема решается с помощью простых ProxyPass и ProxyPassReverse, но только при проксировании "/". Я предполагаю, что проксирование CUPS на любой другой путь не работает.
Я наткнулся на этот сайт http://www.wlug.org.nz/ApacheReverseProxy.
Они решили проблему, объединив mod_proxy с mod_proxy_html для изменения ссылок внутри веб-страниц CUPS.
Однако я лично считаю, что веб-интерфейс CUPS следует как-то улучшить и, возможно, переписать на PHP или аналогичный, поскольку нынешний веб-интерфейс (на основе CGI) как-то непоследователен (в некоторых местах у нас есть относительные URL-адреса как admin, а в других как / admin) .