NGINX 启用 SSL 时重写一些外部 URL

NGINX 启用 SSL 时重写一些外部 URL

我在使用 NGINX 时遇到了一个奇怪的问题,当启用 SSL 时,一些外部资源 URL 会以 server_name 为基础重写。

例如,尝试包含“https:/fonts.googleapis.com”,浏览器尝试加载“https://my.domain.com/fonts.googleapis.com',但有些资源有效!例如,code.jquery.com 有效,正如您将在提供的示例中看到的那样。

这仅在使用 SSL 时发生,不使用它也可以正常加载资源。

我设法在这两个 URL 上找到了一个可行的示例,请检查你的控制台是否存在错误:

  • 非 SSL(工作):[删除]
  • SSL(不工作):[删除]

两个链接都针对同一个文件,尝试加载 2 个 JS(一个来自 fonts.googleapis.com(失败),另一个来自 code.jquery.com(有效))。

这是我的 NGINX 配置:

server {
    listen [redacted];
    server_name [redacted];
    include php7.2.conf;

    root /var/www/[redacted]/test;
    index index.php index.html index.htm;

    client_max_body_size 150m;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

server {
    listen [redacted]:443 ssl;  
    ssl on;
    ssl_certificate /path/to/public.pem;
    ssl_certificate_key /path/to/private.pem;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_ecdh_curve secp384r1;
    ssl_prefer_server_ciphers On;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_ciphers "kEECDH+ECDSA kEECDH kEDH HIGH +SHA !aNULL !eNULL !LOW !3DES !MD5 !EXP !DSS !PSK !SRP !CAMELLIA !SEED !RC4";
    server_name test.[redacted];
    include php7.2.conf;

    root /var/www/[redacted]/test;
    index index.php index.html index.htm;

    client_max_body_size 150m;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

我对这个有点迷茫,所以如果有人有想法,谢谢!

相关内容