为什么nginx改了回源端口不匹配域名?

如题,docker里面的nginx 我一样的配置,443端口一切正常,但是cf改成8866后,所有域名直接匹配到默认返回444,很奇怪

2 Likes

啥意思? 改端口匹配不到?cf的 cdn好像只支持默认的几个端口

我是在Origin Rules设置端口,这个好像能任意端口

回源只支持固定的端口,官方文档

HTTP端口

  • 80
  • 8080
  • 8880
  • 2052
  • 2082
  • 2086
  • 2095

HTTPS端口

  • 443
  • 2053
  • 2083
  • 2087
  • 2096
  • 8443
2 Likes

是在Origin Rules也只能设置这几个端口吗,我看nginx的log全都返回444,我以为是nginx的问题

规则没限制,我随便设的端口都能通 :tieba_025:

不是,如果origin rule,就看看你的域名当前ssl/tls那里用的是什么模式? 改成灵活试试

不是ssl的问题,就是我设置了

server {
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        server_name _;
        ssl_certificate /etc/nginx/crt/cloudflare.crt;
        ssl_certificate_key /etc/nginx/crt/cloudflare.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;

        # 如果请求是非 HTTPS 请求,返回 444
        error_page 400 = @bad_request;

        location @bad_request {
            return 444;
        }

        location / {
            return 444;
        }
    }

nginx直接把所有域名都匹配到444了,我删了之后,什么b.example.cn c.example.cn,,都匹配第一个a.example.cn去了

嗷嗷- -! 破案了