`
wx1569484809
  • 浏览: 63737 次
文章分类
社区版块
存档分类
最新评论

简单 nginx + tomcat6 +ueditor 集群处理

 
阅读更多

相对来说nginx做集群会相对比较容易一点。因此此文章才用nginx来集群项目中间有写问题处理简要说明下.新手第一次希望得到更多指点!!!

1: 工具

    nginx:代理服务器。redis:用来存储session,集群式session 共享时使用。 tomcat6,项目中使用了ueditor编辑器。一并写下。因为上传图片时需要对其处理。

2:中间使用到了ueditor 编辑器。下载最新ueditor。到项目,将lib中的包加载到项目中。

  配置文件上传:在ueditor.config.js 中配置  serverUrl: URL + "jsp/controller.jsp"即可。

  但是你可能会发现其上传的图片文件夹在tomcat里。这样会造成tomcat膨胀应发性能问题。因此有人会去修改上传方法。  

  本人比较懒没有修改或者使用第三方上传。我的方法是:

  我们会发现config.json 文件中配置了文件上传路径和图片名的名称规则。

  如: "imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

  我们希望能配置指定绝对路径,但是很遗憾,只识别相对路径。因此我决定将imagePathFormat配置成: ../..//ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}" 使调出tomcat加载文件。但是这样tomcat就不能加载这些文件了,但是没关系我们可以在tomcat 中配置虚拟路径来加载这个文件jar。

找到server.xml 在host 便签下 添加配置

<Context  path="/ueditor"  docBase="G:/apache-tomcat-6.0.32/ueditor"  debug="0"    reloadable="true"  crossContext="true"/>

启动后通过  localhost:8080/ueditor 请求能加载ueditor下的所有文件。


3:步骤

 安装redis 此步相对简单 。对照着文档配置即可。和tomcat6 实现session 共享。需要的jar包有。

commons-pool-1.6.jar,  jedis-2.1.0.jar , tomcat-redis-session-manager-1.2-tomcat-6.jar 

(注:tomcat-redis-session-manager-1.2-tomcat-Version.jar  版本需和tomcat版本一致 )

将上述包复制到每个tomcat6 中的lib中。并在tomcat配置文件中配置。配置context.xml.  在context便签中添加

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

host="localhost"  // redis 安装的服务器ip

port="6379"   // redis安装的端口

database="0"

maxInactiveInterval="1800"/> //session 时效

经此步session实现共享。

配置nginx。配置nginx.conf. 相关配置说明看文档。

配置如下

upstream 55.zh.com { 

server localhost:7005 weight=10  max_fails=2 fail_timeout=30s; 

server localhost:7006 weight=10  max_fails=2 fail_timeout=30s; 

server {

        listen       9000; //监听端口

        server_name  55.zh.com;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;

        location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|xls|json)$ {  // 静态资源分离

                  root G:/upload;   //根路径

                  #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力

                  expires      7d; 

          } 

 

          location /{

 proxy_set_header Host $host:$server_port;  //如果不配置的话可能会出现端口号丢失的情况导致无法访问。

 proxy_set_header X-Real-IP $remote_addr;

          proxy_set_header REMOTE-HOST $remote_addr;

          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 proxy_pass http://55.zhd.com;

 client_max_body_size 10m;    #允许客户端请求的最大单文件字节数

          client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,

          proxy_connect_timeout 30;  #nginx跟后端服务器连接超时时间(代理连接超时)

          proxy_send_timeout 30;        #后端服务器数据回传时间(代理发送超时)

          proxy_read_timeout 30;         #连接成功后,后端服务器响应时间(代理接收超时)

          proxy_buffer_size 128k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小

          proxy_buffers 32 128k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

          proxy_busy_buffers_size 128k;    #高负荷下缓冲大小(proxy_buffers*2)

          proxy_temp_file_write_size 128k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传

        }

 

location ~ ^/WEB-INF/ {  

           deny  all;  

        }  

}

配置完成之后 依次启动  redis --》 tomcat---》nginx。发现正常运行。

但是你会察觉有点不对。没有处理上传文件资源问题。我讲下我的处理方式:

我从别人博客里看到有几种方式: 比如使用文件同步啊,ftp 共享什么的。我采取的方式是所有的上传图片所有的文件下载预览都使用都指定一台服务器。如ueditor 的上传文件,我们从config.json 中发现所以的上传action 都是以upload 开头。所有的获取路径都是以我们配置的 localhost:8080/ueditor 这个请求来访问。那么我就可以指定一台服务器。在上述nginx.conf 配置中添加配置 :

    upstream 55.zh.com_file { //用来处理ueditor 文件上传预览

server localhost:7005 weight=10  max_fails=2 fail_timeout=30s; 

 #server localhost:7006 weight=10  max_fails=2 fail_timeout=30s; // 注释掉

    location ^upload {  //处理以upload开头的请求

proxy_pass http://55.zh.com_file;

}

location ~*/ueditor/ {  //处理ueditor的 请求

proxy_pass http://55.zh.com_file;

}

具体的表达式根据实际情况处理。




转载于:https://my.oschina.net/u/1387306/blog/543160

分享到:
评论

相关推荐

    Nginx+tomcat+redis

    - **反向代理**:Nginx接收来自客户端的请求,然后将这些请求转发到后端的Tomcat服务器集群,隐藏了内部服务器的细节。 - **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+tomcat配置集群负载均衡实例

    静态资源路径`/static/`下的请求将直接由Nginx处理,其他请求则转发给Tomcat集群。 为了进一步优化,还可以添加健康检查,确保只有健康的Tomcat实例接收请求。在upstream模块中,可以使用`health_check`指令进行...

    Nginx+Tomcat+Memcached共享session集群配置

    通过以上配置,我们可以实现一个基于 Nginx、Tomcat 和 Memcached 的高效且可扩展的集群架构,该架构不仅解决了 Session 共享的问题,还大大提高了系统的并发处理能力和稳定性。在实际应用中,还需要结合具体的业务...

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

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录 Keepalived 是一种高可用性解决方案,可以与 Nginx 和 Tomcat 配合使用来实现高可用集群。下面是 Keepalived+Nginx+Tomcat 高可用集群搭建的实战记录。 ...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分

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

    这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问速度。下面我们将详细探讨这些组件的作用及其在集群环境中的配置与协同工作。 **Nginx** ...

    nginx+tomcat+redis完成session共享

    这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...

    第三十三章:Lvs+Keepalived+Nginx+Tomcat高可用集群1

    LVS+Keepalived+Nginx+Tomcat 高可用集群项目 本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器...

    nginx+tomcat+redis集群部署环境

    nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文

    windows服务器部署 nginx+tomcat+mysql服务器端部署 阿里云服务器部署及配置

    详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...

    nginx+tomcat7+memcached session会话保持

    本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台服务器之间切换时仍能保持其会话状态。 首先,我们要理解会话保持的重要性。在分布式系统中,用户可能与集群中的任何一台...

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

    Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...

    Nginx+Tomcat7+Memcached集群Session共享

    Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...

    Nginx+KeepAlived+Tomcat负载架构

    ### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...

    nginx+tomcat+ssl_https

    Nginx与Tomcat的结合,使得动态和静态内容的处理得以分离,提高了整体系统的响应速度和并发能力。 SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是网络安全领域的重要协议,用于在互联网...

    linux下的nginx+tomcat负载均衡简单原理

    Linux 下的 Nginx+Tomcat 负载均衡简单原理是指通过 Nginx 服务器来实现 Tomcat 服务器集群的负载均衡,以提高网站的可用性和性能。本文将对 Linux 下的 Nginx+Tomcat 负载均衡简单原理进行详细的介绍。 一、拓扑...

    负载均衡nginx+tomcat+terracatta+nfs+mysql

    多台Tomcat配合Nginx可以形成一个集群,提高服务的可用性和响应速度。 3. **Terracotta(会话共享)**:在分布式系统中,保持用户会话的一致性是关键问题。Terracotta是一个开源的Java集群框架,它允许在多个Tomcat...

    Nginx+tomcat6+memcache配置集群session共享所需jar包

    这里我们关注的是如何通过Nginx、Tomcat6和Memcached实现集群中的session共享。这个压缩包“Nginx+tomcat6+memcache所需jar包”提供了实现这一目标所需的组件。 首先,Nginx是一个高性能的反向代理服务器,常用于...

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

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

Global site tag (gtag.js) - Google Analytics