Nginx+ php-fpm 代理环境下JS无法完全加载问题的处理: 之前nagios监控是由apache代理的,后来转移用nginx代理,但是转移之后发现个问题 页面总是加载不全,结合博客它给出的 http://ixdba.blog.51cto.com/2895551/806622 关于 fastcgi_buffers 这几个配置解释于是做出了调整,将fastcgi_buffers的参数由fastcgi_buffers 4 64k; 调整为 fastcgi_buffers 4 128k; -------------另: 直接访问相关js也发现内容确实只加载了一半,强制刷新无用,依然只有一半。但是直接访问tomcat的80或者8080端口发现是没有问题的。 问题原因 Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。 问题解决 在Nginx.conf中添加 proxy_buffer_size 128k;           proxy_buffers 32 128k;          proxy_busy_buffers_size 128k; 然后重启nginx,即可。Nginx在代理了相应服务后或根据我们配置的UpStream和location来获取相应的文件,首先文件会被解析到nginx的内存或者临时文件目录中,然后由nginx再来响应。那么当proxy_buffers和proxy_buffer_size以及proxy_busy_buffers_size 都太小时,会将内容根据nginx的配置生成到临时文件中,但是临时文件的大小也有默认值。所以当这四个值都过小时就会导致部分文件只加载一部分。所以要根据我们的服务器情况适当的调整proxy_buffers和proxy_buffer_size以及proxy_busy_buffers_size、proxy_temp_file_write_size。具体几个参数的详细如下 proxy_buffers 32 128k; 设置了32个缓存区,每个的大小是128k proxy_buffer_size 128k; 每个缓存区的大小是128k,当两个值不一致时没有找到具体哪个有效,建议和上面的设置一致。 proxy_busy_buffers_size 128k;设置使用中的缓存区的大小,控制传输至客户端的缓存的最大 proxy_temp_file_write_size 缓存文件的大小

分类: web

标签: