Symptoms

OACI VE console does not work.

The console shows the message:

Session Closed. Please click on Reset Console

Cause

OACH console requires a series of configuration entries on Branding and Virtuozzo hosts. Due to various reasons, the configuration may get broken as a result of reconfiguration - brands relocation, Apache reconfiguration, Virtuozzo nodes reinstallation, etc.

Resolution

The check-list below will help to validate the VE console configuration:

  1. Each host that contains a brand should have the following configuration files in place:

    # cat /etc/httpd/conf.d/oaci.conf
    
    SSLProxyEngine On
    ProxyVia Off
    ProxyRequests Off
    
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    
    Header set X-Forwarded-Proto https
    
    ProxyPass "/oaciws/22" "ws://10.10.10.11:80/websocket"
    ProxyPass "/oaciws/23" "ws://10.10.10.12:80/websocket"
    

    The bottom lines are formed with the help of backnet IP addresses of the Virtuozzo hardware nodes.

    The configuration file should be included into the Apache configuration tree:

    # grep oaci.conf /etc/httpd/conf/httpd.conf
    Include conf.d/oaci.conf
    
  2. Each Virtuozzo host should have Apache configuration file /etc/httpd/conf.d/oaci.conf, describing OACI virtual host that should be located at /var/www/oaci. The virtual host includes a single .htaccess file to forward the incoming requests to web sockets.

    # cat /var/www/oaci/html/.htaccess
    RewriteEngine on
    RewriteRule ^websocket/([^/]+) ws://10.10.10.1:$1/websockify [P]
    RewriteRule ^oaciws/([^/]+)/([^/]+) ws://10.10.10.1:$2/websockify [P]
    
  3. All Branding and Virtuozzo hosts should have mod_proxy_wstunnel RPM package installed, with additional Apache configuration file to load the module:

    # cat /etc/httpd/conf.d/proxy_wstunnel.conf
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    

    Note: RedHat7/CentOS7 have mod_proxy_wstunnel shipped with httpd by default. RPM package mod_proxy_wstunnel is not required on servers with RedHat7/CentOS7.

  4. The request to access VE console arrives at the Branding host, which is proxied to the web sockets running on Virtuozzo hosts. Connectivity between Branding and Virtuozzo on port 80 is required to make this work.

    Log files to check for possible errors:

    /var/log/httpd/oaci_access_log
    /var/log/httpd/oaci_error_log
    /var/log/httpd/oaci_ssl_access_log
    /var/log/httpd/oaci_ssl_error_log
    
  5. Apache service should be running on all Virtuozzo and Branding nodes:

    # service httpd status
    

Internal content

Link on internal Article