【发布时间】:2020-06-25 05:50:18
【问题描述】:
我在我的服务器上直接安装了 nginx,并带有一个指向包含 Next.js 应用程序的 Docker 容器的代理。
Next.js 的 HTML 已正确加载,但所有资源均失败:
server {
listen 443 ssl http2;
listen [::]:443 http2;
server_name app.mydomain.ml;
include extras.conf;
ssl_certificate /etc/letsencrypt/live/app.mydomain.ml/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/app.mydomain.ml/privkey.pem;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:4000;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
看起来 nginx 正在尝试打开 JS 文件而不是将它们传递给代理。这些文件位于容器内。我有一个类似的设置,可以在另一个实例上正常工作。
以下是部分 nginx 错误日志:
2020/06/24 19:39:50 [error] 11172#11172: *482 open() "/etc/nginx/html/_next/static/chunks/75fc9c18.5b5b04c7a1a3ce1f0adc.js" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: app.mydomain.ml, request: "GET /_next/static/chunks/75fc9c18.5b5b04c7a1a3ce1f0adc.js HTTP/2.0", host: "cfcdemo.ml", referrer: "https://app.mydomain.ml/"
2020/06/24 19:39:50 [error] 11172#11172: *482 open() "/etc/nginx/html/_next/static/chunks/22b3a38a.fdf56032c38364c88402.js" failed (2: No such file or directory), client: xxx.xxx.xxx.xx, server: app.mydomain.ml, request: "GET /_next/static/chunks/22b3a38a.fdf56032c38364c88402.js HTTP/2.0", host: "cfcdemo.ml", referrer: "https://app.mydomain.ml/"
【问题讨论】: