zab*_*mba 5 reverse-proxy nginx mime-types
我通过另一个域名 (www.bbb.com) 设置了一个 NGINX 反向代理到 Web 服务 (www.aaa.com),同时向后者添加了一些附加页面。
请求来自www.bbb.com(nodejs 应用程序),但它们需要看起来像是来自,www.aaa.com否则我将遇到 CORS(跨源资源共享)问题。因此 NGINX 需要调整 headers。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
include servers/*;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl;
server_name www.bbb.com;
ssl_certificate /etc/pki/nginx/server.crt;
ssl_certificate_key /etc/pki/nginx/private/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP 127.0.0.1;
proxy_set_header Host www.aaa.com;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://www.aaa.com;
proxy_http_version 1.1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
看起来其中一个资源没有通过反向代理 获取正确的MIME 类型https://www.aaa.com/scripts/some.script.api.js
拒绝执行来自“ https://www.bbb.com/scripts/some.script.api.js ”的脚本,因为其 MIME 类型(“text/html”)不可执行,并且启用了严格的 MIME 类型检查。
text/html确实不正确,我期待application/javascript
1. 为什么会出现这种情况? 我认为 MIME 类型只是自动设置的?难道 www.aaa.com 实施了一些新的 CORS 安全规则?
2. 有没有办法告诉 NGINX 为该特定文件设置正确的 MIME 类型?我尝试了一些方法但没有成功。
例如
add_header Content-Type application/javascript;
Run Code Online (Sandbox Code Playgroud)
但我可能用错了。有什么指点吗?
您可以尝试使用http://nginx.org/r/default_type;我想到的另一件事是http://nginx.org/r/proxy_hide_headers。
\n\n我还建议第一行操作是确定此问题的根本原因 \xe2\x80\x94 是来自上游的错误 MIME 类型吗?然后看那里。
\n\n否则,我的猜测是你得到的原因text/html是你的配置有其他问题,并且404 Not Found为你的文件生成了响应.js(或者甚至可能403 Forbidden由上游或500nginx 生成),从而导致text/htmlMIME类型。
| 归档时间: |
|
| 查看次数: |
22942 次 |
| 最近记录: |