NGINXがプロキシサービスとして動作していて、$ENV
変数(Docker Composeファイル内)に応じてSSLキーを設定したいとします。NGINX:set_by_luaが動作しない
私はnginx.conf
に追加:
env ENVKEY;
そして、configファイルで:
server {
resolver 10.0.0.4 valid=300s;
resolver_timeout 60s;
server_name _;
listen 443;
ssl on;
# perl_set $envkey 'sub { return $ENV{"ENVKEY"}; }';
set_by_lua $envkey 'return os.getenv("ENVKEY")';
ssl_certificate /etc/nginx/ssl/jm-website-$envkey.crt;
ssl_certificate_key /etc/nginx/ssl/jm-website-$envkey.key;
私もperl_set
を使用しようとした - しかし、それは唯一のlocation
で使用することができますが、ssl_certificate
- http
またはserver
ブロック。環境中の変数の存在が
nginx: [emerg] BIO_new_file("/etc/nginx/ssl/jm-website-$envkey.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/jm-website-$envkey.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
:
[email protected]:/etc/nginx# echo $ENVKEY
dev
私はここで間違って何をやっている?私は、エラーを持っている - set_by_lua
を使用して
おそらくもっと良いアプローチがありますか?