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.com
和 anonymous.mydomain.com
浏览时,此配置工作正常,但使用任何指向的域,如 new.example.com
,它给出 404 页面(可能是由于 return 404
声明)。
对于 SSL,我正在使用 lets-encrypt certbot。
如何配置才能
- 允许从所有 CNAME 指向的域到我的服务器的流量?
- 向所有域提供 SSL 证书?
我用的是CaddyServer,比nginx好很多,满足所有要求
Caddy 的特点
- 支持第三方域名 CNAME 指向
- JSON基础配置
- API支持配置
- 按需 TLS
- 默认为生产服务器中的所有域SSL/TLS提供服务
- 无需为域安装和管理 SSL 证书。
我正在使用 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.com
和 anonymous.mydomain.com
浏览时,此配置工作正常,但使用任何指向的域,如 new.example.com
,它给出 404 页面(可能是由于 return 404
声明)。
对于 SSL,我正在使用 lets-encrypt certbot。
如何配置才能
- 允许从所有 CNAME 指向的域到我的服务器的流量?
- 向所有域提供 SSL 证书?
我用的是CaddyServer,比nginx好很多,满足所有要求
Caddy 的特点
- 支持第三方域名 CNAME 指向
- JSON基础配置
- API支持配置
- 按需 TLS
- 默认为生产服务器中的所有域SSL/TLS提供服务
- 无需为域安装和管理 SSL 证书。