net::ERR_CONTENT_LENGTH_MISMATCH on nginx 1.8.0

2019-06-02 05:23发布

问题:

The problem started when I noticed that angular failed to load with net::ERR_CONTENT_LENGTH_MISMATCH.

Full list of errors:

GET http://xyx.com/assets/angular/angular.js?body=1 net::ERR_CONTENT_LENGTH_MISMATCH
Uncaught ReferenceError: angular is not defined(anonymous function) @ angular-cookie.js?body=1:7
Uncaught ReferenceError: angular is not defined(anonymous function) @ ui-bootstrap-tpls.js?body=1:9
Uncaught TypeError: Cannot read property 'isDefined' of undefined(anonymous function) @ angular-ui-router.js?body=1:19(anonymous function) @ angular-ui-router.js?body=1:4340
Uncaught ReferenceError: angular is not defined(anonymous function) @ ng-optimizely.js?body=1:1
Uncaught TypeError: Cannot read property '$$minErr' of undefined(anonymous function) @ angular-resource.js?body=1:9(anonymous function) @ angular-resource.js?body=1:628
Uncaught ReferenceError: angular is not defined

I did some research which lead me to check the nginx error log. The log produced the following error:

2015/11/11 16:26:31 [crit] 39125#0: *255 open() "/usr/local/var/run/nginx/proxy_temp/4/00/0000000004" failed (13: Permission denied) while reading upstream, client: x.x.x.x, server: xyx.com, request: "GET /assets/angular/angular.js?body=1 HTTP/1.1", upstream: "http://x.x.x.x:9090/assets/angular/angular.js?body=1", host: "xyz.com", referrer: "url_here"

I found a post that had a similar issue. However, deleting the contents of the /usr/local/var/run/nginx directory and restarting nginx did not solve the problem.

I also verified that the nginx worker process was being run by the same owner of the /usr/local/var/run/nginx/proxy_temp directory, as mentioned in another post (user is nobody). Changing permissions to 777 didn't work either.

This problem is occurring in my Dev environment. I'm using a Mac with El Capitan (10.11.1) and nginx version 1.8.0. Any assistance with this would be greatly appreciated.

nginx config file:

server {
  listen 80;

  server_name www.local.site.com;
  return 301 https://local.site.com$request_uri;
}

server {
  listen 80;
  server_name local.sell.site.com;

  location / {
    proxy_pass http://x.x.x.x:9090;
  }
}

server {
  listen 443;
  server_name local.sell.site.com;

  ssl on;
  ssl_certificate /Users/sheldon/Repos/site/config/nginx/ssl/site.crt;
  ssl_certificate_key /Users/sheldon/Repos/site/config/nginx/ssl/site.key;
  ssl_session_timeout  5m;
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "[Removed]";
  ssl_prefer_server_ciphers on;


  location / {
    proxy_pass http://x.x.x.x:9090;
  }
}

server {
  listen 443;

  root /Users/sheldon/Repos/site/www;
  index index.php;
  server_name local.site.com;
  access_log /Users/sheldon/logs/nginx/local.site.com.access.log;
  error_log /Users/sheldon/logs/nginx/local.site.com.error.log;

  ssl on;
  ssl_certificate /Users/sheldon/Repos/site/config/nginx/ssl/site.crt;
  ssl_certificate_key /Users/sheldon/Repos/site/config/nginx/ssl/site.key;
  ssl_session_timeout  5m;
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "[Removed]";
  ssl_prefer_server_ciphers on;

  large_client_header_buffers 4 8m;

  location ~* (.+)\.(\d+)\.(js|css|png|jpg|jpeg|gif)$ {
    try_files $uri $1.$3;
  }

  location / {
      index index.html index.php;
      try_files $uri $uri/ @handler;
      expires 30d;
  }

  location ^~ /media/downloadable/ { deny all; }

  location  /. {
      return 404;
  }

  location @handler {
      rewrite / /index.php;
  }

  location ~ .php/ {
      rewrite ^(.*.php)/ $1 last;
  }

  location ~ \.php$ {
      if (!-e $request_filename) {
      rewrite / /index.php last;
      }
      expires off;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/tmp/php5-fpm.sock;
      fastcgi_index index.php;
      fastcgi_intercept_errors on;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param MAGE_RUN_TYPE store;
      fastcgi_param ENVIRONMENT dev;
      fastcgi_param MAGE_IS_DEVELOPER_MODE true;
      fastcgi_buffer_size 128k;
      fastcgi_buffers 4 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_read_timeout 420;
      include fastcgi_params;
  }

  location /api { 
      rewrite ^/api/rest /api.php?type=rest; 
  }
}

回答1:

You have also to give enough permission to the user under which nginx is running to the directory that is hosting your upstream http://x.x.x.x:9090 and having your deployed source code.