Nginx 允许来自任何域的流量

Nginx allow traffic from any domain

我正在使用 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
}

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

对于 SSL,我正在使用 lets-encrypt certbot。

如何配置才能

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

我用的是CaddyServer,比nginx好很多,满足所有要求

https://caddyserver.com/

Caddy 的特点

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