首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nginx conf中参数化服务器名称

问在nginx conf中参数化服务器名称
EN

Stack Overflow用户
提问于 2017-08-15 16:52:26
回答 1查看 195关注 0票数 0

我有多个域都指向同一个VM。(mydomain1.com,mydomain2.com,mydomain3.eu)现在我有一个巨大的nginx.conf,它看起来像这样:

代码语言:javascript
复制
server {
    listen 443 ssl;
    server_name   *.mydomain1.com;
    ssl  on;
    ssl_certificate  /etc/nginx/ssl/mydomain1.com.chained.crt;
    ssl_certificate_key  /etc/nginx/ssl/mydomain1.com.key;
    # hundred more lines of rules
}
server {
    listen 443 ssl;
    server_name   *.mydomain2.com;
    ssl  on;
    ssl_certificate  /etc/nginx/ssl/mydomain2.com.chained.crt;
    ssl_certificate_key  /etc/nginx/ssl/mydomain2.com.key;
    # the same hundred more lines of rules
}
server {
    listen 443 ssl;
    server_name   *.mydomain3.eu;
    ssl  on;
    ssl_certificate  /etc/nginx/ssl/mydomain3.eu.chained.crt;
    ssl_certificate_key  /etc/nginx/ssl/mydomain3.eu.key;
    # the same hundred more lines of rules
}

有没有办法缩短这段时间--因为目前我正在克隆这么大的代码块,当我不得不添加一个新域名时,只需要更改域名不同的3行代码。我考虑了一些参数化,比如(不知道正确的语法):

代码语言:javascript
复制
SERVER_NAME = {request_server_name}
ssl_certificate  /etc/nginx/ssl/${SERVER_NAME}.chained.crt;
ssl_certificate_key  /etc/nginx/ssl/${SERVER_NAME}.key;

这个是可能的吗?多么?

EN

回答 1

Stack Overflow用户

发布于 2017-08-16 13:54:39

你可以对它做两件事

多域SAN证书

您可以购买多域SAN证书。这允许您在同一证书中使用不同的域。这样你就不需要有多个块了。如果您使用的是自签名证书,您仍然可以自己创建SAN证书

使用OpenRestry或Nginx+LUA

您可以使用带有LUA支持的OpenResty或Nginx,并使用相同的ssl_certificate_by_lua_block指令。

脚本语法: ssl_certificate_by_lua_block {lua-

}

上下文:服务器

阶段:先握手后握手

当NGINX将要为下游SSL (https)连接启动SSL握手时,此指令将运行用户Lua代码。

它对于在每个请求的基础上设置SSL证书链和相应的私钥特别有用。从远程以非阻塞方式加载此类握手配置也很有用(例如,使用cosocket API)。在这里,我们也可以使用纯Lua进行每次请求的OCSP装订处理。

https://github.com/openresty/lua-nginx-module#ssl_certificate_by_lua_block

另请参阅下面的文章,了解一些示例实现

https://medium.com/@mtourne/how-to-use-nginx-for-ssl-termination-for-any-domain-dc2e2c630058

https://blog.readme.io/auto-generating-ssl-certificates-for-custom-domains-using-lets-encrypt/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45689559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档