Nginx 允许来自任何域的流量

Anu*_*TBE 5 ssl nginx lets-encrypt certbot

我用nginx的是代理服务器。我的应用程序有一个功能,用户可以使用自己的域而不是我的域。为此,他们需要将其 CNAME 指向我的域。

这是我的 Nginx 配置

server {
  server_name                   scan.mydomain.com anonymous.mydomain.com "";
  access_log                    /etc/nginx/log/local-wc.access.log;
  error_log                     /etc/nginx/log/local-wc.error.log;

  location / {
    root                      /var/www/html/qcg-scanning-frontend/dist/webapp/;
    index                     index.html;
    try_files                 $uri $uri/ /index.html;
    proxy_redirect            off;
    proxy_set_header          Host            $host;
    proxy_set_header          X-Real-IP       $remote_addr;
    proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header          X-Forwarded-Protocol $scheme;
  }

  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/anonymous.mydomain.com-0001/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/anonymous.mydomain.com-0001/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
  if ($host = scan.mydomain.com) {
    return 301 https://$host$request_uri;
  } # managed by Certbot

  if ($host = anonymous.mydomain.com) {
    return 301 https://$host$request_uri;
  } # managed by Certbot

  server_name                   scan.mydomain.com anonymous.mydomain.com "";
  listen 80;
  return 404; # managed by Certbot
}
Run Code Online (Sandbox Code Playgroud)

当使用我的域浏览时,此配置工作正常scan.mydomain.com,anonymous.mydomain.com但使用任何指向的域(例如 )new.example.com,它会给出 404 页面(可能是由于return 404声明)。

对于 SSL,我使用 Lets-Encrypt certbot。

我该如何配置

  1. 允许从所有 CNAME 指向的域到我的服务器的流量吗?
  2. 为所有域提供 SSL 证书?

Anu*_*TBE 1

我使用了CaddyServer,它比nginx要好得多,可以满足所有要求。

https://caddyserver.com/

球童的特点

  • 支持第三方域名CNAME指向
  • 基于 JSON 的配置
  • API 支持配置
  • 按需 TLS
  • 默认为生产服务器中的所有域提供 SSL/TLS
  • 轻松安装和管理域的 SSL 证书。