Я использую сервер Spotify на Raspberry Pi в магазине школьной робототехники.Он находится в школьной сети Wi-Fi и доступен через веб-страницу http://localhost:6680. Я хотел добавить базовую аутентификацию HTTP (имя пользователя / пароль), потому что люди были злонамеренными, поэтому я использую Apache VirtualHost в качестве прокси-сервера с базовой аутентификацией,
Кроме того, веб-серверу требуется, чтобы WebSockets функционировал через тот же порт.Я успешно настроил файл VirtualHost, и он работает нормально ... за исключением того, что он не работает на Safari или iOS.После просмотра в консоли все запросы WebSocket в Safari возвращают ошибку 401:
WebSocket connection to 'ws://XX.XXX.XX.XXX/iris/ws/' failed: Unexpected response code: 401
Если посмотреть на это подробнее, очевидно, это известная ошибка в Safari.Вот файл VirtualHost:
<VirtualHost *:80>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Proxy *>
Allow from all
</Proxy>
ProxyRequests On
ProxyPass /mopidy/ws/ ws://localhost:6680/mopidy/ws/
ProxyPassReverse /mopidy/ws/ ws://localhost:6680/mopidy/ws/
ProxyPass /iris/ws/ ws://localhost:6680/iris/ws/
ProxyPassReverse /iris/ws/ ws://localhost:6680/iris/ws/
<Location />
ProxyPass http://localhost:6680/
ProxyPassReverse http://localhost:6680/
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Location>
</VirtualHost>
Есть ли какой-нибудь способ, которым мы можем просто удалить аутентификацию для просто веб-сокетов, но не для веб-страницы?Учитывая, как это структурировано, это должно быть так, но это не так.Спасибо!