我在使用 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;
}
}
我对这个有点迷茫,所以如果有人有想法,谢谢!