Docker Nginx未正确代理Next.js
我已经在我的服务器上直接安装了nginx,其中包含一个包含Next.js应用程序的Docker容器的代理 正在正确加载Next.js的HTML,但所有资产均失败:Docker Nginx未正确代理Next.js,docker,nginx,next.js,Docker,Nginx,Next.js,我已经在我的服务器上直接安装了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
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/"
为什么不为此创建一个别名
location /_next {
alias "/etc/nginx/html/_next/;
}
删除了位置块中的所有垃圾,但代理通行证突然起作用
location / {
proxy_pass http://127.0.0.1:4000;
}
因为我的Next.js应用程序在Docker容器中。将答案标记为有用。