web-dev-qa-db-ja.com

ingress-nginxから静的ファイルを提供する

静的ファイルを備えたexpress Webサーバーがあります。これをexpress-deploymentと呼びましょう。

私のingress-nginxを使用して、自分のexpress-deploymentから静的ファイルを提供し、実際にExpressサーバーにアクセスすることはありません。

nginxでは、これはlocationディレクティブで行われ、ローカルでホストされているファイルを指定します。 locations-snippetconfigMapingress-nginxのオプションが表示されますが、別のコンテナー内のファイルをこのように指定する方法がよくわかりません。

これはingress-nginxで可能ですか?もしそうなら、私はそれについてどうやって行きますか?または、これは、nginxコンテナーをExpressサーバーと一緒にホストする必要があるものですか? (そのために2つのnginxが必要になるのは奇妙に思えます)

11
Terence Chow

理論的には、RWXモードのPVをExpressとIngressの両方にマウントし、nginx-ingressポッドにカスタム構成を提供することもできますが、それは避けてください。 Ingressコントローラーには1つの責任があります。クラスターで定義されたIngressルールを実装します。静的コンテンツを提供するには、それを実行するポッドが必要です。スタックで2番目のnginxを実行します。重要なのは、イングレスコントローラーを一般的なクラスター機能を提供するインフラストラクチャの一部として扱い、静的ファイルをある場所(または、Dockerイメージとしてバージョン管理/構築されている場合はコンテナー)から提供することは、実際にはアプリケーションの一部であることです。