又是新的一周,上周的最后两天一直在研究Nginx,并解决了一下项目组中的一些问题。
原本配置nginx和更改配置是其他人再搞,后来因为他在给java web项目(一个是后台管理的项目,一个是视频流推送的项目)的时候,发生了一些事情,就转到了我这里,说实话,我之前没有接触过Nginx,硬着头皮再搞。下面介绍一下这两个事情的经过。
第一个问题,后台管理的项目,他在做主备代理的时候发现了项目只能到登录页面,无法进行登录,更别说进行其他的操作了。
接到手的时候,首先可以肯定的是web项目一定不会有问题,测试10轮的项目,不会出现这么low的问题,我把nginx的主备访问地址都更改到我本地,然后就进行测试,通过跟代码,发现在Filter中有一个response,页面中是通过Ajax进行的请求的,因此,我就顺势在response里增加了一个变量,ajax的complete里接收该变量,测试发现返回的变量是null,然后用项目的本地真实路径访问的时候,发现可以接收我在后台添加的变量,然后我就去查看nginx.conf文件里的各个配置项(居然一个注释都没有),然后查找每一个配置项的意思和作用,最终定位到proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for 这里,将其注掉,就会发现,无论是项目访问,还是主备切换,都会很顺畅,没有之前的问题了。
第二个问题,对于视频流推送的项目(每次推送的大小是固定1M)进行负载——轮询切换,发现基本就是第一次访问的时候是ok的