使用Angular 2配置nginx时出错:无法加载资源:net :: ERR_CONTENT_LENGTH_MISMATCH

问题描述:

我配置了nginx.conf将来自Angular 2应用程序的请求传输到tomcat应用程序。仍然有几个问题。 我的nginx.conf如下:使用Angular 2配置nginx时出错:无法加载资源:net :: ERR_CONTENT_LENGTH_MISMATCH

worker_processes 1; 
events { 
worker_connections 1024; 
} 
http { 
include  mime.types; 
default_type application/octet-stream; 
sendfile  on; 
keepalive_timeout 65; 
server { 
    listen   8082; 
    root /; 
    client_max_body_size 50M; 
    location /images { 
    root /var/www/rentoptimum; 
    } 
    location/{ 
     proxy_set_header X-Forwarded-Host $host; 
     proxy_set_header X-Forwarded-Server $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://localhost:4200/; 
    } 
    location /api/ { 
     proxy_set_header X-Forwarded-Host $host; 
     proxy_set_header X-Forwarded-Server $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://localhost:8080/rentapp/; 
    } 
} 
server { 
    listen  8081; 
    server_name localhost; 
    location/{ 
     root html; 
     index index.html index.htm; 
    } 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root html; 
    } 
} 
include servers/*; 
} 

的URL本地主机:8081工作得很好,我看到“欢迎您到nginx的”。 Localhost:4200给出了角度应用。本地主机:8082不打开本地主机:4200和代理通过(http://localhost:8080/rentapp/;)到tomcat也不起作用。

上的Chrome错误堆栈如下:

Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH 
inline.bundle.js:53 Uncaught TypeError: Cannot read property 'call' of undefined 
at __webpack_require__ (inline.bundle.js:53) 
at Object.1022 (main.bundle.js:6) 
at __webpack_require__ (inline.bundle.js:53) 
at webpackJsonpCallback (inline.bundle.js:24) 
at main.bundle.js:1 

首先一个需要设置日志记录,所以在配置文件中注释的error_log:

error_log logs/nginx_error.log; 

然后在日志I可以看到:

2017/05/27 22:37:29 [crit] 41617#0: *1 open() "/usr/local/var/run/nginx/proxy_temp/1/00/0000000001" failed (13: Permission denied) while reading upstream, client: 127.0.0.1, server: localhost, request: "GET /vendor.bundle.js HTTP/1.1", upstream: "http://127.0.0.1:4200/vendor.bundle.js", host: "localhost:8082", referrer: "http://localhost:8082/" 

日志显示权限问题:

/usr/local/var/run/nginx/proxy_temp/1/00/0000000001 

修复此路径的权限解决了问题