问题1场景:
Nginx+Tomcat搭建,且cms由Nginx进行代理转发。如常见的8080端口转到80,或者其他服务器的80或8080端口等情况。之后通过80端口访问cms的时候发现前端以及后台很多的js加载一半,出现如图错误:直接访问相关js也发现内容确实只加载了一半,强制刷新无用,依然只有一半。但是直接访问tomcat的80或者8080端口发现是没有问题的。
问题1原因:
Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。
问题1解决:
在Nginx.conf中添加(http或者server中)
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
问题2场景:
Nginx监听8080,并将请求转发到后端的5050 glassfish上,客户端在请求某个资源时,从浏览器的开发者工具看到请求的连接是 127.0.0.1:5050,而本来客户端需要请求的连接是 test.example.com:8080 。
我的nginx配置是
server {
listen 8080 ;
server_name test.example.com ;
location / {
proxy_pass http://127.0.0.1:5050;
}
}
问题2原因:
程序代码中生成请求地址是根据源链接来的,nginx需要对host进行转发。
问题2解决:
在上面的location中添加如下配置
proxy_set_header Host $http_host;
4185

被折叠的 条评论
为什么被折叠?



