【发布时间】:2018-12-02 12:10:57
【问题描述】:
我通过openresty使用lua并设置环境变量来动态设置域名。我有:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
env MYDOMAIN;
http {
server {
listen 80;
listen 443 ssl;
set_by_lua $MYDOMAIN 'return os.getenv("MYDOMAIN")';
server_name $MYDOMAIN www.$MYDOMAIN;
location / {
proxy_pass http://127.0.0.1:5000;
index index.html index.htm;
}
ssl_certificate /etc/letsencrypt/live/$MYDOMAIN/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$MYDOMAIN/privkey.pem;
}
}
我收到一个错误:
nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/$MYDOMAIN/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/$MYDOMAIN/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
设置 server_name 可以正常工作,但在 ssl_certificate 和 ssl_certificate_key 的情况下,它实际上是采用 $MYDOMAIN 的值。
【问题讨论】:
-
你的ssl证书有效吗?我的意思是它已经更新了
-
是的,它是有效的。如果我硬核它的价值。
-
为什么不使用
ssl_certificate_by_lua_blockgithub.com/openresty/lua-resty-core/blob/master/lib/ngx/ssl.md ? -
从 1.15.9 版本开始可以在文件名中使用变量。
标签: docker nginx lua openresty