nginx——记三天学习并解决项目中遇到的问题
2017-02-27 16:25
337 查看
又是新的一周,上周的最后两天一直在研究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的,后续的访问就无法进行,查看了nginx的access.log文件,第一次去找的时候,发现居然没有这个日志,然后看一下配置文件里居然关闭了,打开重新reload,发现里面的访问,第一次是HTTP 返回的是200,证明访问成功了,后续的访问居然变成了206,记得206是断点续传range的标志位,居然在这里出现了,然后就去查找nginx的206状态,没有什么解决办法,换个思路,查找nginx的range,查找到代理的缓存、以及块大小等信息。代码如下slice
1m;proxy_cache_key $uri$is_args$args$slice_range; proxy_set_header Range $slice_range;proxy_cache_valid 200 206 1m;增加了如上的配置之后,视频流就可以正常的轮询切换了。
以上就是上周解决的nginx所遇到的问题,也是从对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的,后续的访问就无法进行,查看了nginx的access.log文件,第一次去找的时候,发现居然没有这个日志,然后看一下配置文件里居然关闭了,打开重新reload,发现里面的访问,第一次是HTTP 返回的是200,证明访问成功了,后续的访问居然变成了206,记得206是断点续传range的标志位,居然在这里出现了,然后就去查找nginx的206状态,没有什么解决办法,换个思路,查找nginx的range,查找到代理的缓存、以及块大小等信息。代码如下slice
1m;proxy_cache_key $uri$is_args$args$slice_range; proxy_set_header Range $slice_range;proxy_cache_valid 200 206 1m;增加了如上的配置之后,视频流就可以正常的轮询切换了。
以上就是上周解决的nginx所遇到的问题,也是从对nginx一无所知,硬着头皮搞,当然现在也只是了解了一点皮毛而已。
通过上周的这个问题,发现无论解决什么问题,都要抓住关键点,具体问题具体分析。
相关文章推荐
- [知了堂学习笔记] SSM框架项目中遇到的问题及解决办法_01
- 学习韩顺平校内网项目时遇到的问题及解决方法之用eclipse整合hibernate
- ionic学习使用笔记(一) 版本更新及创建项目时遇到的问题解决
- 学习韩顺平校内网项目时遇到的问题及解决方法
- 做智囊团项目遇到的问题与解决方法
- 项目中遇到的一些小问题及解决方法
- 在VS.NET 2003中建立项目时遇到的两个问题及解决方法 (转贴)
- PDA(WinCE)项目开发中遇到的问题及解决方法总结
- 第一次带项目遇到的复杂问题如何解决?学会任务分解,勇敢迈出第一步!
- 学习NHibernate时遇到的问题解决方法
- 最近要做个项目,遇到一些关于ansys问题,看看兄弟们能否帮我解决?
- 学习中遇到的问题以及解决方法
- 项目开发过程中遇到的一些问题和解决办法(逐渐添加)
- 在VS.NET 2003中建立项目时遇到的两个问题及解决方法
- 如何解决,对待在做项目中所遇到的问题?/?
- 项目开发遇到的问题及其解决.总结
- 一个项目中遇到的若干问题-提出问题-分析问题-解决问题
- 使用VS2005做VB项目时遇到的问题,现已经解决
- 使用VIM开发软件项目 - (16) vim编译中遇到的问题及解决方法
- 单位的局域网遇到了这样的问题,已经解决了,大家学习下..