WebSockifyトークンターゲットの選択
3603 ワード
インprevious post 私はnginxプロキシの後ろにwebsockifyを設定する方法を見ました.究極の目標は、複数の同時ユーザーを収容することでした.そのポストのセットアップが働いたけれども、ユーザーの数が大きいならば、各々のユーザーのために実行しているwebsockifyインスタンスがあるので、それは非常に資源空腹になります.
私たちは使用するつもりですtoken based target selection 同じセットアップを実装するには、WebSockifyの単一のインスタンスを使用します.我々は、2つのユーザー、アリスとボブのセットアップを構築しますが、原則より多くのユーザーにスケール.
VNCサーバ
私たちはアリスとボブの別のVNCサーバが必要です.
ユーザとしてこれを実行する
alice
.vncserver \
-localhost no \
-geometry 1024x768 \
-SecurityTypes None --I-KNOW-THIS-IS-INSECURE \
:0
ユーザとしてこれを実行するbob
.vncserver \
-localhost no \
-geometry 1024x768 \
-SecurityTypes None --I-KNOW-THIS-IS-INSECURE \
:1
我々は現在、ポート5900と5901の要求に答える2つのVNCサーバがあります.websockifyトークンの設定
ユーザーのトークンを指定する設定ファイルを作成します.
U6F7msdQ: 127.0.0.1:5900
1oJw2DwG: 127.0.0.1:5901
トークンの値は本当に何かをすることができます.🚨 最初のスペース:
重要です!websockify
今すぐwebsockifyを開始する準備が整いました.
websockify -D \
--verbose \
--web /usr/share/novnc/ \
--token-plugin=TokenFile \
--token-source=/etc/websockify-token.cfg \
6080
注意事項--token-plugin
トークンを扱うプラグインを指定します.トークンファイルプラグインを使用しています.TokenFile
, しかし、他の様々なオプションがありますReadOnlyTokenFile
and TokenRedis
. --token-source
設定ファイルの場所を指定します.🚨 WebSockifyは設定ファイルを開くことができない場合は停止しません.それで、あなたが正しい絶対パスを通過していることを確認してください、さもなければ、ものはちょうど働きません、そして、それは理由を明らかにしません!nginxプロキシ
最終的なコンポーネントはnginxの後ろにこのすべてを置くことです.まず、簡単なHTMLインデックスページが必要です.
<a href="/novnc/vnc.html?resize=remote&path=novnc/websockify?token=U6F7msdQ">
Alice
</a>
<a href="/novnc/vnc.html?resize=remote&path=novnc/websockify?token=1oJw2DwG">
Bob
</a>
ここで重要なコンポーネントは、WebSockifyへのパスが指定され、それぞれのユーザーに正しいトークンを渡す方法です.そして、より簡潔な
nginx.conf
, WebSockifyの単一インスタンスのプロキシを設定するだけです.user www-data;
daemon off;
events {
}
http {
server {
listen 80 default_server;
location / {
root /www/data;
try_files $uri $uri/ /index-both.html;
}
location /novnc/ {
proxy_pass http://127.0.0.1:6080/;
}
location /novnc/websockify {
proxy_pass http://127.0.0.1:6080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
}
}
ファイアアップNGinx.nginx
とインデックスページを参照します.名前のいずれかをクリックして選択したデスクトップに表示されます.トークンがURLで渡されることに注意してください.だから今、私たちには、かなりのleanerシステムがあります:各々のユーザーのためのWebSocifyプロセスの代わりに、我々はちょうど各々のユーザーのために適切なVNCサービスに要求を出す一つのプロセスを持っています.
Reference
この問題について(WebSockifyトークンターゲットの選択), 我々は、より多くの情報をここで見つけました https://dev.to/datawookie/websockify-with-token-target-selection-27e9テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol