nginx和tomcat集成后重定向引发的问题解决

nginx作为反向代理,监听端口非80端口比如使用88端口,tomcat监听的端口8080,这种情况下当发生302重定向的时候,tomcat默认会重定向到80端口,根本原因就是tomcat的repose的头部带的location的端口默认是80端口,这样nginx就会重定向到80端口导致系统无法访问。如果nginx监听的是80端口自然不会存在这样的问题。

知道问题的根本原因是头部的location不对导致的,那么处理办法就很简单了,这里有两种办法:

1.治标不治本的办法,配置nginx,修改location达到解决问题

proxy_redirect     http://host http://host:88;

2.从根本上解决问题,修改tomcat配置,配置代理的端口

在server.xml配置文件中http的connector节点加入了proxyPort="88"就可以了。

Tomcat在设计的时候是对这种代理服务器和Tomcat集成的情况做了考虑,80端口之所以没问题是因为port为空,浏览器会默认走80端口,如果nginx这代理服务器不是80这个端口应该需要配置proxyPort的属性的,这样就不会遇到这个问题。

nginx安装配置flv流媒体服务器

apache也可以配置flv流媒体服务器,之前有文章介绍,但是用一些播放器播放的时候还是不能拖动,比如说使用VLC播放器播放的时候,拖动就不起作用,因此尝试使用nginx来配置,最后发现flowplay,或者VLC都可以完美播放并且可以任意拖动。

看看nginx的安装步奏

1.安装pcre

获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本
解压缩pcre-xx.tar.gz包。
进入解压缩目录,执行./configure。
make & make install

2.安装openssl
获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。
解压缩openssl-xx.tar.gz包。
进入解压缩目录,执行./config。
make & make install

3.安装zlib
获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。
解压缩openssl-xx.tar.gz包。
进入解压缩目录,执行./configure。
make & make install

4.安装nginx
获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。
解压缩nginx-xx.tar.gz包。
进入解压缩目录,执行

./configure –with-pcre=/usr/harddisk/pcre-8.36 –with-http_flv_module –with-http_gzip_static_module –with-http_stub_status_module

make & make install

注意,可以不需要安装openssl , zlib可能操作系统就已经安装所以也不需要安装,但是pcre必须的,注意–with-pcre是指向源代码的目录而不是安装目录,不然的话编译报错。

5.配置虚拟路径

配置文件路径 vi /usr/local/nginx/conf/nginx.conf

location ^~/vedio/
        {
                alias /usr/harddisk/;
                flv;
                limit_rate 250k;
        }

以上就是配置路径/vedio/下的访问能使用flv模块并且限速,alias是对应的物理路径。

6.启动和停止

/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop