本篇文章主要介绍了详解 Nginx 反向代理到 Tomcat 服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
在实际生产中,Tomcat 服务器一般不单独使用在项目中,对于静态资源的响应 Nginx 表现的比较好,另外由于 nginx 是专门用于反向代理的服务器,所以很容易实现将 java 的请求转发到后端交给 tomcat 容器处理,而本身用来处理静态资源
在 Nginx 中,一个 server {} 块往往用来配置一个比较大的项目,一般就是对于一个域名的所有配置,一个 server 块内一般有多个 location 来定义多个请求规则,比如域名和根目录配置,静态资源支持,php fastcgi 请求,url 重写,错误页面配置等多种配置,所以 nginx 代理 tomcat 和前面的转发 php-fpm 一样,就是将请求转发到后端的动态模块去处理该请求
下面在 server 中简单配置一个 location 局部规则,将指定的 nginx 请求转发至 tomcat 容器
假设 tomcat 已经正常运行,端口号为 8080,首先使用 vim 编辑 nginx.conf 配置文件,比如: vim /usr/local/nginx/nginx.conf
然后在 server {} 块最后,补充下面的内容:
- location ^~ /tomcat/ {
- proxy_pass http://127.0.0.1:8080/;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
因为上面配置了 php-fpm 的支持,所以这里使用 / tomcat / 请求来确定是否转发到 tomcat 容器,前面的 ^~ 就是匹配任意的域名或者 IP 地址部分,所以当访问 http://ip/tomcat 这样的请求时,那么 tomcat 容器就会起作用,和访问 http://ip:8080 效果是一样的,包括容器下的项目都是完全一样的
保存之后,重新载入 nginx 配置文件: /usr/local/nginx/nginx -s reload
当然这里的 location 可以配置好多个,从而代理到多个服务器上的 tomcat,也可以自由配置多个 server {} 块,代理到多个服务器,这之间都是根据自己的需要灵活配置的,另外加上静态资源规则等配置,可以实现强大的功能,比如配置负载均衡,实现网站的高并发访问以及图片服务器的资源共享等等
来源: http://www.phperz.com/article/17/0318/326260.html