Рейтинг:0

прокси-сервер apache2 vnc для proxmox (с промежуточным приложением php)

флаг mx

у него есть приложение php, которое имеет доступ к proxmox и отображает консоль vnc, используя токен. это на сервере apache2. Мы пытаемся проксировать запросы vnc за apache, чтобы у конечного пользователя не было прямого доступа к proxmox. Проблема, основанная на журналах, что нет обработчика для apache:

AH01144: обработчик протокола недействителен для URL-адреса /api2/json/nodes/server/qemu/vmid/vncwebsocket (схема «wss»). Если вы используете DSO-версию mod_proxy, убедитесь, что подмодули прокси включены в конфигурацию с помощью LoadModule.

Моя проблема в том, что модуль загружен, а сервер перезапущен:

root@server-01:~# apache2ctl -M
Загруженные модули:
core_module (статический)
so_module (статический)
watchdog_module (статический)
http_module (статический)
log_config_module (статический)
logio_module (статический)
version_module (статический) 
unixd_module (статический)
access_compat_module (общий)
alias_module (общий)
auth_basic_module (общий)
authn_core_module (общий)
authn_file_module (общий)
authz_core_module (общий)
authz_host_module (общий)
authz_user_module (общий)
autoindex_module (общий)
deflate_module (общий)
dir_module (общий)
dumpio_module (общий)
env_module (общий)
filter_module (общий)
mime_module (общий)
mpm_prefork_module (общий)
модуль переговоров (общий)
php7_module (общий)
proxy_module (общий)
proxy_ajp_module (общий)
proxy_balancer_module (общий)
proxy_http_module (общий)
proxy_wstunnel_module (общий)
reqtimeout_module (общий)
rewrite_module (общий)
setenvif_module (общий)
slotmem_shm_module (общий)
socache_shmcb_module (общий)
ssl_module (общий)
status_module (общий)

Реализация основана на следующем руководстве: https://forum.proxmox.com/threads/working-novnc-with-reverse-proxy-on-5-1.43644/

конфигурация apache для проксирования на proxmox:

root@server01:~# cat /etc/apache2/sites-enabled/proxy-ssl.conf
<IfModule mod_ssl.c>
    <Виртуальный хост _default_:443>
            Имя_сервера app01-proxy
            Веб-мастер администратора сервера@localhost
            SSLProxyEngine включен
            Дампио уровня логарифма: трассировка7
            DumpIOInput включен
            Вывод DumpIO включен
            <Местоположение />
                    Проксипасс https://proxmoxserver:8006/
                    ProxyPassReverse https://proxmoxserver:8006/
             </местоположение>

            <LocationMatch ^/(api2/json/nodes/[^\/]+/[^\/]+/[^\/]+/vncwebsocket.*)$>
                    ProxyPass wss://proxmoxserver:8006/$1 повтор=0
            </LocationMatch>

            <Местоположение /websockify>
                    Проксипасс ws://proxmoxserver:8006/
                    ProxyPassReverse ws://proxmoxserver:8006/
            </местоположение>

            Журнал ошибок ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log вместе

            SSLEngine включен
            SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                            SSLOptions +StdEnvVars
            </FilesMatch>
            <Каталог /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Каталог>

    </ виртуальный хост>

и другая конфигурация для локального приложения:

root@server-01:~# cat /etc/apache2/sites-enabled/console-ssl.conf
<IfModule mod_ssl.c>
    <Виртуальный хост _default_:443>
            имя_сервера app01
            Веб-мастер администратора сервера@localhost
            DocumentRoot /var/www/html/hyper-controller/public
<Каталог /var/www/html/hyper-controller/public>
        Опционы Индексы FollowSymLinks MultiViews
        Разрешить переопределить все
        Порядок разрешить, запретить
        разрешить от всех
        Требовать все предоставленные
  </Каталог>
            Журнал ошибок ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log вместе
            SSLEngine включен
            SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                            SSLOptions +StdEnvVars
            </FilesMatch>
            <Каталог /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Каталог>
php_flag log_errors включен
php_flag display_errors включен
php_value error_reporting 2147483647
php_value error_log /var/log/php.error.log
</ виртуальный хост>
</ЕслиМодуль>

произошла ошибка на уровне браузера: ошибка

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.