GNU/Linux >> Linux の 問題 >  >> Linux

リバースプロキシを使用してWebSocket用にApacheを設定する

WebアプリケーションでWebSockifyを使用し、noVNCを使用してVNCサーバーに接続し、ブラウザーを介したLinuxサーバーへのリモートアクセスを有効にしました。ファイアウォールがなく、WebSocketポートが開かれているため、簡単に実装できました。ただし、最近、ファイアウォールの背後にある別のサーバーに移行する必要があり、システム全体が危険にさらされる可能性があるため、ポートを開きたくありませんでした。この記事では、Apacheリバースプロキシを介してWebSockifyを実装します。

noVNCとは何ですか?

noVNCは、VNC用のHTMLクライアントです。 noVNCを使用すると、ブラウザからVNCサーバーに接続できます。

なぜWebSockifyなのですか?

WebSockifyは、WebSocketトラフィックを通常のソケットトラフィックに変換します。 Websockifyは、WebSocketのハンドシェイクを受け入れて解析し、クライアントとターゲットの間で双方向にトラフィックの転送を開始します。

写真提供:datawookie.dev

予測:

WebSockifyとApacheWebサーバーの両方が同じホストで実行されていることを前提としています。

セットアップ:

  • Apache v2.4
  • ポート6080のWebSocket用のWebSockify
  • noVNCがインストールされています
  • VNCを実行しているリモートサーバー
  • CentOS Linux 7.9

注: noVNCとVNCを使用してWebSockifyを構成する方法については詳しく説明しません。

Websocket用にApacheリバースプロキシを構成する

ステップ1: 以下のモジュールがApache/etc/httpd/conf.modules.d/で有効になっていることを確認してください フォルダ。

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

ステップ2: 以下のように、ReverseProxyおよびRewriteルールを持つVirtualHostを作成します。

WebsockifyアプリケーションのURL

WebSockifyはポート6080で実行されており、次の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>

ステップ3: ApacheWebサーバーを再起動します

# systemctl restart httpd


Linux
  1. NGINXを使用してHTTP(S)、SSH、およびMySQL/MariaDBのリバースプロキシを実行するためのガイド

  2. LinuxでリバースプロキシとしてApacheTrafficServerを設定する

  3. Apacheでmod_clusterを使用する

  1. Apache2.4でプロキシバックエンドとしてHTTPSを使用する

  2. CloudLoadBalancerでSSLターミネーション用にApacheを構成する

  3. UNIX / Linux:mod_perl を Apache 2 にインストールして構成する方法

  1. KibanaのNginxリバースプロキシを構成する方法

  2. Ubuntu15.10でApacheのリバースプロキシとしてNginxをインストールする方法

  3. CentOS8でNginxをWebサーバーおよびApacheのリバースプロキシとして構成する方法