1
LeegoYih 262 天前
可以参考 GitHub Pages 的玩法
|
2
LeegoYih 262 天前
GitHub Pages 支持自定义域名,用的是 Let's Encrypt 的证书: https://docs.github.com/en/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https
|
3
InDom 262 天前
你帮他签发就好了,首先他肯定需要将域名 cname 给你,然后到你提供的页面输入域名绑定,你绑定的时候,就直接后台调用生成证书的脚本就好了。
至于 nginx ,你是可以自己设置的对吧。 |
6
InDom 262 天前
@wind1986 #5 简单来说,这种情况必然是脚本自动管理 nginx 了,你可以为每个域名一个 server ,里面为这个域名指向一对密钥。
例如如下:/etc/nginx/sites-enable/www_a_com.conf server { listen 443 ssl; server_name www.a.com; # 该域名的证书和私钥 ssl_certificate /etc/nginx/certs/www_a_com/cert.crt; ssl_certificate_key /etc/nginx/certs/www_a_com/private.key; include /etc/nginx/site-common.conf } |
7
leonshaw 262 天前 1
nginx ssl_certificate 配置可以包含变量的,把证书用域名相关的文件名存放。
|
10
wu00 262 天前
不一定非得 nginx 啊,那么多反代,找不出一个可以通过接口动态配置 server_name 的吗?
就算 nginx 也能装 GUI 之类的管理工具实现的吧 |
11
LeegoYih 262 天前
|
12
clf 262 天前
可以试试 caddy 做网关?支持 api 的方式热更新配置信息。
|
16
wu00 262 天前
要让 Nginx 调用 API 获取配置并进行更新,你可以使用 Nginx 自带的模块 ngx_http_lua_module 结合 Lua 脚本来实现。
下面是一个示例的 Nginx 配置,演示如何在 Lua 脚本中调用 API 获取配置并更新: ``` nginx http { lua_shared_dict config_cache 1m; server { listen 80; server_name domainA.com; location / { access_by_lua_block { -- 尝试从缓存中获取配置 local config = ngx.shared.config_cache:get("my_config") if not config then -- 从 API 获取配置 local res = ngx.location.capture('/api/config') if res.status == ngx.HTTP_OK then config = res.body -- 缓存配置 ngx.shared.config_cache:set("my_config", config) end end -- 更新 server_name if config then ngx.var.server_name = config end } # 其他配置... } } } ``` 在上述示例中,使用了`ngx_http_lua_module`模块和 Lua 脚本。当请求到达 Nginx 服务器时,Lua 脚本在`access_by_lua_block`中执行。 脚本的主要逻辑是: 1. 首先,尝试从缓存中获取配置,如果缓存中存在配置,则直接使用。 2. 如果缓存中不存在配置,则通过调用`ngx.location.capture`函数来发起 HTTP 请求,获取配置。这里的`'/api/config'`是 API 的 URL 地址,你需要根据实际情况进行修改。 3. 如果 HTTP 请求返回状态为 200 OK ,则获取到配置内容,并将其缓存起来。 4. 最后,根据配置更新`server_name`的值。 这样,每当有请求到达时,Lua 脚本会尝试获取最新的配置并更新`server_name`。 请注意,该示例仅提供了基本的框架,你需要根据实际需求进行修改和调整,例如添加错误处理、身份验证和缓存策略等。另外,为了使用`ngx_http_lua_module`模块,你需要确保已经将该模块编译到你的 Nginx 中。 |
18
Lax 262 天前 1
先问问有多少用户?
如果让用户上传,要考虑的事情就太多了。需要对上传的文件做验证,还要管理用户的密钥,每一步都有大坑 用 certbot 管理 nginx 的证书,一行命令就能搞定。lua 脚本去做动态管理,或者 caddy 之类的工具也很多。 |