`

搭建Nginx+Java环境(转)

 
阅读更多

《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》第1章 轻量级HTTP服务器Nginx,本章主要介绍了对高性能HTTP服务器Nginx的安装、配置、管理和使用,以及Nginx在性能优化方面的一些经验和 技巧,并通过实例分别演示了Nginx与PHP整合,Nginx和Java、Perl整合的过程。本节为大家介绍搭建Nginx+Java环境。

   nginx是web服务器,跟apache一样,它可以做动态请求转发、web端负载均衡、反向代理等等;
tomcat是应用服务器,当然如果非用逼良为娼,也可做web服务器用,它主要是做Servlet容器用的,一般
用在应用层,运行后台逻辑代码,访问数据库服务器等;一般常见的网站,采用apache+tomcat+数据库或是nginx+tomcat+数据库这三层物理架构;如果是大型网站应用,上面还会有一层硬件负载均衡F5。从性能角度来讲nginx的性能似乎要比apache略好,但从使用方便上来看,apache配置起来更方便,功能上
都很强大,因为apache名气似乎更大一些,用的人就更多一些。

AD:

 Apache+Tomcat集群配置

http://www.iteye.com/topic/1017961/

 http://blog.csdn.net/java85140031/article/details/6856424

1.8.4 搭建Nginx+Java环境

 

Apache 对Java的支持很灵活,它们的结合度也很高,例如Apache+Tomcat和Apache+resin等都可以实现对Java应用的支持。 Apache一般采用一个内置模块来和Java应用服务器打交道。与Apache相比,Nginx在配合Java应用服务器方面,耦合度很低,它只能通过 自身的反向代理功能来实现与Java应用服务器的支持。但这恰恰是Nginx的一个优点,耦合度的降低,可以使Nginx与Java服务器的相互影响降到 最低。

 

接下来通过Nginx+Tomcat的实例来讲解Nginx对Java的支持。Tomcat在高并发环境下处理动态请求时性能很 低,而在处理静态页面更加脆弱。虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很 多。

 

 

       Nginx可以通过以下两种方式来实现与Tomcat的耦合:将静态页面请求交给Nginx,动态请求交给后端Tomcat处理。将所有请求都交给后端的Tomcat服务器处理,同时利用Nginx自身的负载均衡功能进行多台Tomcat服务器的负载均衡。

 

 

下面通过两个配置实例分别讲述这两种实现Nginx与Tomcat耦合的方式。

 

1.动态页面与静态页面分离的实例

 

这里假定Tomcat服务器的IP地址为192.168.12.130,同时Tomcat服务器开放的服务器端口为8080。Nginx相关配置代码如下:

 

  1. server {  
  2.       listen 80;  
  3.       server_name www.ixdba.net;  
  4.       root /web/www/html;  
  5.  
  6. location /img/ {  
  7.       alias /web/www/html/img/;  
  8. }  
  9.  
  10. location ~ (\.jsp)|(\.do)$ {  
  11.      proxy_pass http://192.168.12.130:8080;  
  12.      proxy_redirect off;  
  13.      proxy_set_header Host $host;  
  14.      proxy_set_header X-Real-IP $remote_addr;  
  15.      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  16.      client_max_body_size 10m;  
  17.      client_body_buffer_size 128k;  
  18.      proxy_connect_timeout 90;  
  19.      proxy_send_timeout 90;  
  20.      proxy_read_timeout 90;  
  21.      proxy_buffer_size 4k;  
  22.      proxy_buffers 4 32k;  
  23.      proxy_busy_buffers_size 64k;  
  24.      proxy_temp_file_write_size 64k;  
  25. }  
  26.  

 

 

 

在这个实例中,首先定义了一个虚拟主机www.ixdba.net,然后通过location指令将/web/www/html/img/目录下的静态文件交给Nginx来完成。最后一个location指令将所有以.jsp、.do结尾的文件都交给Tomcat服务器的8080端口来处理,即http://192.168.12.130:8080

 

需要特别注意的是,在location指令中使用正则表达式后,proxy_pass后面的代理路径不能含有地址链接,也就是不能写成http://192.168.12.130:8080/,或者类似http://192.168.12.130:8080/jsp的形式。在location指令不使用正则表达式时,没有此限制。

 

2.多个Tomcat负载均衡的实例

 

这里假定有3台Tomcat服务器,分别开放不同的端口,地址如下:

 

  1. 192.168.12.131:8000  
  2. 192.168.12.132:8080  
  3. 192.168.12.133:8090 

 

 

Nginx的相关配置代码如下:

  1. upstream mytomcats {  
  2.       server 192.168.12.131:8000;  
  3.       server 192.168.12.132:8080;  
  4.       server 192.168.12.133:8090;  
  5. }  
  6.  
  7. server {  
  8.       listen 80;  
  9.       server_name www.ixdba.net;  
  10.  
  11. location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {  
  12.        root /web/www/html/;  
  13. }  
  14.  
  15. location / {  
  16.           proxy_pass http://mytomcats;  
  17.           proxy_redirect off;  
  18.           proxy_set_header Host $host;  
  19.           proxy_set_header X-Real-IP $remote_addr;  
  20.           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  21.           client_max_body_size 10m;  
  22.           client_body_buffer_size 128k;  
  23.           proxy_connect_timeout 90;  
  24.           proxy_send_timeout 90;  
  25.           proxy_read_timeout 90;  
  26.           proxy_buffer_size 4k;  
  27.           proxy_buffers 4 32k;  
  28.           proxy_busy_buffers_size 64k;  
  29.           proxy_temp_file_write_size 64k;  
  30. }  
  31.  

 

在这个实例中,先通过upstream定义一个负载均衡组,组名为mytomcats,组的成员就是上面指定的3台Tomcat服务器;接着通过server指令定义一个www.ixdba.net的虚拟主机;然后通过location指令以正则表达式的方式将指定类型的文件全部交给Nginx去处理;最后将其他所有请求全部交给负载均衡组来处理。

这里还有一点需要注意,如果在location指令使用正则表达式后再用alias指令,Nginx是不支持的。


分享到:
评论

相关推荐

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    二、部署调度器—搭建Nginx+Keepalived(双机热备) 在调度器服务器上,需要安装Nginx和Keepalived软件包。首先,需要安装编译工具和插件,然后添加nginx用户和组,解压Nginx安装包,编译和安装Nginx。接着,需要...

    nginx+ffmpeg流媒体服务器(java)

    基于java搭建的流媒体服务器(nginx+ffmpeg)可运行在linux上,具体文章说明:https://blog.csdn.net/weixin_40263855/article/details/87917484

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录

    Tomcat 是一种 Java Web 应用服务器,可以与 Nginx 和 Keepalived 配合使用来实现高可用集群。Tomcat 的主要功能包括: * Servlet 容器 * JSP 引擎 * WebSocket 支持 高可用集群搭建 以下是 Keepalived+Nginx+...

    Nginx+keepalived+tomcat集群搭建过程.doc

    【Nginx+Keepalived+Tomcat集群搭建】是一个实现服务器高可用和负载均衡的常见方案,旨在解决单点故障问题,防止服务因一台服务器宕机而导致整个系统的崩溃,即所谓的雪崩效应。 首先,我们需要四台服务器,两台...

    Nginx+KeepAlived+Tomcat负载架构

    通过上述步骤,我们成功地搭建了一个基于Nginx、KeepAlived和Tomcat的负载均衡架构。这种架构不仅可以提高系统的稳定性,还能够有效提升系统性能,支持大规模用户访问。未来可以根据实际需求进一步优化,比如增加更...

    Nginx+Tomcat+Redis搭建均衡负载集群

    在搭建均衡负载集群时,首先需要配置Nginx的反向代理和负载均衡设置。在Nginx的配置文件中,可以通过`upstream`块定义一组后端服务器,然后在`server`块中使用`proxy_pass`指令将请求转发到该组服务器。常用的负载...

    idea openrestry+nginx+lua搭建企业级开发环境

    "Idea OpenResty + Nginx + Lua" 的组合提供了一种强大的解决方案,它允许开发者利用 IntelliJ IDEA(Idea)作为集成开发环境,OpenResty(一个扩展了 Nginx 的版本)作为服务器平台,以及 Lua 语言进行高性能的脚本...

    nginx+tomcat7+memcached session会话保持

    最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...

    nginx+springboot+zookeeper+dubbo+mybatis+dubboadmin一步到位

    自己手动搭建的nginx+springboot+zookeeper+dubbo+mybatis+dubboadmin,nginx做前后端分离,负载均衡,springboot+zookeeper+dubbo做后端接口,mybatis为数据库持久化层,dubboadmin做监控中心,解压直接用idea导入...

    keepalived+nginx+tomcat+redis+mysql所需的jdk包

    在构建高性能、高可用性的Web服务环境中,Java开发和运行环境、数据库系统、负载均衡以及缓存服务都是不可或缺的关键组件。这个压缩包包含了"keepalived+nginx+tomcat+redis+mysql"所需的基础组件,特别是Java ...

    CentOS_7软件安装msql+nginx+java1.7+redis

    ### CentOS 7 下 MySQL、Nginx、Java 1.7 和 Redis 的安装与配置 #### 1. MySQL 安装与配置 ##### 1.1 配置 YUM 源 首先需要确保系统已更新至最新版本,可以通过运行 `yum update` 来实现。接着,下载 MySQL 的 ...

    centos7搭建nginx+fastDFS

    - **搭建 FastDFS Java 客户端开发环境** - 下载并安装 FastDFS 的 Java SDK。 - 编写 Java 应用程序来测试文件的上传与下载功能。 #### 六、权限控制 在部署过程中需要注意服务器的文件和目录权限设置,以确保 ...

    nginx+tomcat+ssl_https

    使用这个预配置的环境,可以快速地搭建一个安全的Web服务集群,无需从零开始配置,极大地节省了时间和精力。 总之,"nginx+tomcat+ssl_https"是一种高效、安全的Web服务架构模式,适合处理大量并发请求和复杂的动态...

    国产中标麒麟操作系统nginx+tomcat+redis+mysql安装部署手册(精).docx

    《国产中标麒麟操作系统Nginx+Tomcat+Redis集群安装部署手册》是针对在中标麒麟操作系统上搭建Web服务环境的详细指南。这份手册由东软集团股份有限公司于2019年12月编撰,旨在解决在实际部署过程中可能出现的各种...

    Liunx 下 nginx+tomcat 集群建设

    Nginx以其高性能的反向代理和静态文件处理能力而闻名,而Tomcat作为Java应用服务器,擅长运行Java Servlets和JSP。结合两者,我们可以构建一个强大的Web服务架构。 首先,我们需要理解Nginx的工作原理。Nginx作为一...

    Springboot + Mybatis+Dubbo+Zookeeper+nginx+redis+HTML.docx

    以上配置指定了Java版本、编译插件配置以及其他相关依赖的版本号,确保项目能够正确构建。 #### 四、实战应用案例 在实际应用中,这套技术栈可以实现以下功能: - **服务发现与注册**:利用Dubbo和Zookeeper实现...

    RabbitMQ+Zookeeper+Dubbo+Nginx+Mysql+Redis搭建.txt

    根据给定的文件信息,本文将详细介绍如何搭建RabbitMQ、Zookeeper、Dubbo、Nginx、Mysql以及Redis的技术环境。以下内容将着重于每项技术的基础安装与配置,旨在为读者提供一个全面且实用的技术栈搭建指南。 #### 一...

    nginx+tomcat7+jdk1.7+redis--jar.rar

    综上所述,"nginx+tomcat7+jdk1.7+redis--jar.rar"的解压内容用于搭建一个高效的Web服务架构,通过Nginx分发请求,利用Redis实现跨服务器的Session共享,提升系统的可扩展性和性能。在实际操作中,需要根据具体环境...

    高可用的并发解决方案nginx+keepalived视频教程

    那么在此次课程中,大家就会领略到,使用目前市面上处理并发能力非常强悍的nginx及keepalived如何快速的搭建一个处理高并发并的高可用的服务。 课程介绍 本课程介绍了目前处理并发能力非常强悍的开源软件nginx...

    Linux+Nginx+Memcached+Redis+PHP+电商购物模块实战开发

    为适应企业对高端开发工程师的需求,整合了Linux系统的常见使用,包括文件操作、权限操作、常用shell命令,以及mysql、nginx、php环境的搭建,让童鞋们顺利掌握Linux下的开发,适应大公司的工作场景。另外的重头戏...

Global site tag (gtag.js) - Google Analytics