nginx設定で環境変数を使用し、nginxが静的ファイル(html、js、css-たとえばAngularJsアプリ)のみを提供するように構成されている場合、nginxが提供するJSファイル内で環境変数を使用する方法はありますか? ?または、これを実行して非静的サーバー(io.js、phpなど)を実行する唯一の方法です。
ところで、nginxの設定では、環境変数をネイティブに使用することはできません。
私は環境について話すときnginxの設定Iにvarsはこの記事のように意味:どのように私はNginx.confで環境変数を使用することができます彼らが使用env APP_WEB_1_PORT_5000_TCP_ADDR;
し、$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"};
ユースケースを正確に説明してください
私の特定の使用例は、Dockerコンテナーにnginxを利用したAngularJSアプリがあることです。このアプリは、別のシステムで実行されているAPIを完全に使用する「単一ページアプリケーション」です。アプリには、Google-Analtyicsコードなどの異なる設定があるため、現在、本番とステージングの間で別のDockerコンテナーを実行しています。この環境固有のデータはconfig.js
ファイルに保存され、値は現在ハードコーディングされています。gitのmaster
ブランチの1つの値とブランチの異なる値ですstaging
。制作とステージングの両方で同じコンテナを使用できるように、デザインを変更したいと考えています。私は(それを実行したときに容器の中にENVのVARを渡したいdocker run -e GACODE=UA-12345-6 ...
介して、()とENVのVARを使用nginxの持ちenv GACODE;
と$ENV{"GACODE"}
なりますconfig.js
ファイルでは、ハードコーディングするのではなく、渡されたGoogleAnaltyicsコードを使用できます。これが可能かどうかはわかりません(したがって、質問;))。nginxのみを使用すると、コンテナーが単一プロセスになりますが、io.jsを使用する必要がある場合は、複数のリンクされたコンテナーが必要であり、より多くの可動部分がより複雑になります)。