GNU/Linux >> Znalost Linux >  >> Linux

Nakonfigurujte Apache pro WebSockets pomocí Reverse Proxy

Použil jsem WebSockify ve své webové aplikaci pro připojení k serveru VNC pomocí noVNC, abych umožnil vzdálený přístup k serverům Linux prostřednictvím prohlížeče. Byla to snadná implementace, protože nebyl zapojen žádný firewall a byl otevřen port WebSocket. Nedávno jsem však musel migrovat na jiný server, který byl za firewallem, a nechtěl jsem otevřít port, protože by to mohlo ohrozit celý systém. V tomto článku budeme implementovat WebSockify prostřednictvím Apache Reverse Proxy.

Co je noVNC?

noVNC je HTML klient pro VNC. Pomocí noVNC se můžete připojit k serveru VNC z prohlížeče.

Proč WebSockify?

WebSockify převádí provoz WebSockets na normální provoz soketu. Websockify přijímá navázání spojení WebSockets, analyzuje jej a poté začne předávat provoz mezi klientem a cílem v obou směrech.

Obrázek se svolením:datawookie.dev

Předpoklad:

Předpokládá se, že vaše WebSockify i webový server Apache běží na stejném hostiteli.

Nastavení:

  • Apache v2.4
  • WebSockify pro WebSockets na portu 6080
  • noVNC nainstalováno
  • vzdálený server se systémem VNC
  • CentOS Linux 7.9

Poznámka: Nebudeme zacházet do podrobností o tom, jak nakonfigurovat WebSockify s noVNC &VNC.

Konfigurace Apache Reverse Proxy pro Websockets

Krok 1: Ujistěte se, že níže uvedené moduly jsou povoleny v Apache /etc/httpd/conf.modules.d/ složka.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule rewrite_module modules/mod_rewrite.so

Krok 2: Vytvořte VirtualHost s pravidly ReverseProxy a Rewrite, jak je uvedeno níže:

Adresa URL aplikace Websockify

WebSockify běží na portu 6080 a je přístupný přes adresu URL:https://localhost:6080

<VirtualHost *:80>
  ServerName techglimpse.com
  
  ProxyRequests on
  RequestHeader set X-Forwarded-Proto "http"	
  ProxyPass /console https://localhost:6080/
  ProxyPassReverse /console https://localhost:6080/  

  RewriteEngine on
  RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
  RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
  RewriteRule .* ws://localhost:6080%{REQUEST_URI} [P]
  
</VirtualHost>

Krok 3: Restartujte webový server Apache

# systemctl restart httpd


Linux
  1. Průvodce spuštěním reverzního proxy pro HTTP(S), SSH a MySQL/MariaDB pomocí NGINX

  2. Použití mod_cluster v Apache

  3. Použití HTTPS jako proxy backend v Apache 2.4

  1. Nastavte Apache Traffic Server jako reverzní proxy v systému Linux

  2. Nakonfigurujte Apache pro ukončení SSL na Cloud Load Balancer

  3. UNIX / Linux:Jak nainstalovat a nakonfigurovat mod_perl pro Apache 2

  1. Jak nakonfigurovat Nginx Reverse Proxy pro Kibana

  2. Jak nainstalovat Nginx jako Reverse Proxy pro Apache na Ubuntu 15.10

  3. Jak nakonfigurovat Nginx jako webový server a reverzní proxy pro Apache na CentOS 8