問題タブ [nginx-reverse-proxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
redirect - nginx はサブドメインを親ドメインにリダイレクトしています
subdomain.mydomain.com で GitLab をセットアップしようとしています。しかし、この URL を呼び出すと、www.mydomain.com にリダイレクトされます。以下は私の /etc/nginx/sites-available/subdomain.mydomain.com ファイルです。このリンクをたどりました。
この構成で何が問題なのですか。
nginx - NginxルートクライアントIPを同じワーカープロセスに
Nginx アーキテクチャとhttps://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/からのこの図について読むこと は理にかなっています。
私がやりたいことは、クライアント IP -> ワーカー PID のテーブルを保持することによって、常に同じクライアントから同じワーカーにリクエストをルーティングするように Nginx マスター プロセスに指示することです。Master-> Worker ルーティングの動作を指定する構成オプションはありますか?
たとえば、次の request-> worker ケースを想定します。
新しいクライアント IP 18.234.1.197 も PID 1000 のワーカーにルーティングできますが、18.234.1.200 IP は常にワーカー 1000 にルーティングされることに注意してください。
構成オプションがなくても、Lua コードを記述できる場合は、すでに Nginx Lua をよく使用しているので、それは可能です。Master->Worker の選択にどのように影響するかについてのいくつかの直感は素晴らしいでしょう。
nginx - TRANSPARENT オプションで nginx ロードバランシングを試行中の接続タイムアウト
nginx を使用してサーバーへの tcp 接続を負荷分散しようとしています。サーバーにクライアントの詳細を知らせたいので、アップストリームへの接続中に透過オプションを使用しています。しかし、接続がタイムアウトしています。
url - Nginx で URL をバージョン番号で書き換える
複数の Web サイトをホストする Digital Ocean + Nginx サーバーがあります。現在、1 つの Web サイトで複数のバージョンを管理したいと考えています。したがって、その URL にバージョン番号を追加する必要があり、次のルールを適用する必要があります。
1) 現在のバージョン番号が1
. のようなバージョン番号のない URL はwww.myweb.com/action/...
(バージョン番号action
以外の場合もあります)、自動的に に書き換えられる必要がありますwww.myweb.com/1/action/...
。
3000
2) 異なるバージョン番号を持つ URL は、異なるポート (例:および)をリッスンする異なるサーバー (つまり、コードベース + データベース) によって処理されます8080
。
以下は私の現在のnginx構成ファイルです。最初のルールを適用するためにそれを変更する方法を知っている人はいますか(後で2番目のルールを実装する可能性があります) ?
r - Rserve の組み込み HTTP サーバーでのレート制限は?
FastRWebから変更した後、 Rserve (1.8.5)の組み込みHTTP サーバーを調べています。更新されたリクエスト関数では問題ありませんが、問題は、# 同時リクエストが多い場合、その一部またはほとんどが次のエラーをスローすることです。.http.request()
警告: fork() が fork_http() で失敗しました: メモリを割り当てられません
警告: Rserve_prepare_child() で fork() が失敗しました: メモリを割り当てられません
これは、十分な空きメモリが残っていないためであり、何らかの方法で # リクエストを制限する必要があります。
いくつかのクライアント レイヤーを試しました (1) Python のリクエスト + hug ライブラリ、(2) Python の pyRserve + hug ライブラリで、# ワーカー プロセスが # CPU によって調整されます。また、単一/複数のコンテナー設定の両方で Nginx を使用したリバース プロキシを試しました (3) (4)。
すべてのケースで、組み込みの HTTP サーバーを使用した Rserve のみのセットアップと比較して、ある程度のオーバーヘッド (約 300 ~ 450 ミリ秒) が見られます。
そのまま使用するのが最も効率的なオプションだと思いますが、フォークしようとし続けてエラーを返すだけではないかと心配しています。(エラーがすぐにスローされるだけでなく、CPU 使用率や平均応答時間などの一般的なメトリックで自動スケーリングするのは簡単ではありません。)
パフォーマンスを犠牲にしない、別のツールに依存する/しないでレート制限を実施する方法があるかどうか、誰かに知らせることができますか?
私のRserve設定はおおよそ次のとおりです。
また、簡略化されたnginx.confもここにあります。