`
文章列表
在上一篇博客中简要介绍了Nginx和Tomcat的整合使用,然而还有一些历史遗留问题尚未提及。本篇博客将简要介绍Nginx的代理缓存,以及使用多台Tomcat服务器进行负载均衡。   <一>. 代理数据存放目录: proxy_temp_path /software/proxy_temp;      说明:代理临时目录,存在于http作用域,nginx用作代理时,用来存放和后端服务器进行交互的相关数据, 如前端用户的请求、后端服务器的响应,默认位置为nginx安装路径下面的/proxy_temp。 proxy_cache_path /software/proxy_ ...
JDK(Java Development Tookkit)中包含了jre(Java Runtime Environment),而jre是一个java应用运行的基础平台,为此需要在Linux系统上面事先安装JDK环境。然后再安装Tomcat作为web服务器,最后可以将nginx和tomcat进行整合,作为负载均衡和反向代理的 ...
      在真实的Nginx实践过程中,我们通常都会对Nginx的访问日志进行切割,即按照一定的周期生成一个独立的Nginx访问日志文件,以避免存在文件体积过于庞大的日志文件。一方面有助于实际的错误排查,更重要的是有利于Nginx对访问文件的写入。同时,可以将Nginx的安装路径加入到环境变量,甚至可以编写启动关闭脚本,以方便实际操作。   <一>. 切割日志文件: 1. 编写脚本:su - root        进入主目录:cd ~        编写脚本:vi split-nginx-log.sh #!/bin/bash log_path=&qu ...
        下面简单介绍Nginx的虚拟目录和虚拟主机的配置,通过虚拟目录的设置可以直接访问Linux系统下面的静态资源文件,通过虚拟主机的设置可以在一台机器上模拟出多个逻辑上互不相干的独立主机。   <一>. 虚拟目录 ...
       从这篇博客开始,将对Nginx的配置文件nginx.conf的常用配置做详细的解释,并且以附件的形式给出实际的配置文件内容。     user nick excelsoft;       说明:以root账号运行时,设置worker进程所属的用户/组。   worker_processes  2;       说明:设置worker进程的数目,一般和CPU内核数一致,可设置为其2倍,以优化性能。  其他:    查看CPU内核数:cat /proc/cpuinfo | grep processor   如果为双核,则显示:      processor : 0   ...
【Nginx简介】      Nginx(发音同engine x),是来自于俄罗斯的高性能web服务器和反向代理服务器。在国内有新浪、网易、豆瓣、迅雷等多家网站使用。      负载均衡(load balance):使用Nginx作为代理服务器,接收用户请求,并将其“均匀地转发”给多台内部web服务器,不会出现负载集中在某台服务器的现象。     反向代理(reverse proxy):标准的代理是用户使用代理软件访问互联网上的多台web服务器,而反向代理指的是多个用户使用代理服务器访问多台内部web服务器的模式。 使用Nginx的优点:      支持高并发访问:在生产环境下支持 ...
<一>. 简单介绍:        Spring Data貌似提供了对很多数据访问技术的支持,比如JPA、Redis、MongoDB、Hadoop等等。         闲言少述,现在Redis是被关注的对象,尽管我没有对象;Spring Data Redis(以下简称SDR)在Jedis的基础上 ...
<一>. 背景介绍: 1. sharding机制:即通常所说的“分片”,允许数据存放在不同的物理机器上,  以适应数据量过大的场景,克服单台机器内存或者磁盘空间的限制。而这种“离散式”地存放,对客户端来说是透明的,对客户端来讲,完全看不到这种差别。 2. 常见的内存缓存中间件,比如Memcached支持服务器端Sharding,客户端根本无须关心具体的实现细节。而Redis并不支持服务器端分片,不过我们可以使用Jedis提供的API来实现客户端的分片,通过“一致性hash”算法,使得数据离散地存放在不同的服务器上面。 3. 对客户端来说,这是透明的,数据具体存在在那一台机器上面,对 ...
之前介绍了Jedis的基本操作,连接池的支持,以及和Spring的整合。接下来的内容,继续Jedis的最为常见的操作。主要包括常用的列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构,以及其他特性支持。 <一>. 使用list: 可以使用列表模拟队列(queue)、堆栈(stack),并且支持双向的操作(L或者R)。 1. 右边入队: jedis.rpush("userList", "James");   2. 左边出队:右边出栈(rpop),即为对堆栈的操作。 jedis.lpop(&q ...
在上一篇文章中,简单介绍了Jedis的连接池使用方式。 如果和Spring进行整合的话,我们将获得更好的简洁性、灵活性,显然是一种更加优雅(graceful)的方式。   [一]. 搭建环境: 1. 在之前版本的基础之上,添加如下的依赖:   spring.jar   commons-logging.jar   log4j-1.2.15.jar   同时添加日志配置文件:log4j.properties到classpath下面。 2. 配置Spring文件:applicationContext.xml  注意:连接池jedisPool的配置,这里使用了构造方式注入,这是和Jedis的AP ...
使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;并且,使用Jedis提供的对Redis的支持也最为灵活、全面;不足之处,就是编码复杂度较高。 [一]. 入门使用: 下载Jedis的依赖包jedis-2.1.0.jar,然后将其添加到classpath下面。然后,即可进行编程:  1. 定义连接:Redis暂时不要设置登录密码 Jedis jedis = new Jedis("192.168.142.12");   2. 进行键值存储: jedis.set("country", "China&quo ...
Redis的一下常见设置都是通过对redis.conf文件进行修改来完成的。 本文主要介绍了设置访问密码、主从配置、设置数据和日志目录、以及参数调优等方面。  一. 权限设置:  1. 修改redis.conf文件: requirepass nick123   2. 客户端 ...
 Redis提供了丰富的命令,允许我们连接客户端对其进行直接操作.这里简单介绍一下作为常用的一些命令,包括对字符串、列表、集合、有序集合、哈希表的操作,以及一些其他常用命令。 【 基本操作】 1. 添加记录:通常用于设置字符串(string)类型,或者整数类型;如果key已经存在,则覆盖其对应的值。 set name James 2. 获取记录:通过键获取值。 get name 3. 递增/递减:针对整数类型,仍然使用类似于字符串的操作方式:并且可以进行递增、递减操作。 set age 22 incr age decr age 4. 在key不存在时才添加 ...
                         【Redis简介】   <一>. NoSQL简介:    NoSQL是Not-Only-SQL的缩写,是被设计用来替换传统的关系型数据库在某些领域的用,特别针对web2.0站点以及大型的SNS网站,用来满足高并发、大数据的应用需求.常见的NoSQL数据库系统有HBase(Hadoop数据库,基于列存储)、MongoDB(文档型数据库,采用类型与JSON的BSON语法存储记录)、Redis/Memcached(键值存储数据库)等类型。   <二>. Redis介绍:    Redis是NoSQLogic系列数据库中, ...
         在web开发过程中,进行文件的压缩传输是一种常见的需求。比如一种场景:用户需要下载定时生成的报表,我们需要先对报表文件进行压以方便用户的下载,并减少文件的存储空间。         事实上,JDK已经提供了文件压缩/解压缩的支持,可以生成zip/gzip的压缩格式,并且支持支持“校验和”以检查压缩文件的完整性。通常会使用CRC(循环冗余校验)算法进行校验。          遗憾的是,JDK的文件压缩功能无法处理文件名称包含中文的问题。为此,我们需要用到ant.jar第三方开源支持包。           如下所示代码,采用Junit 4进行压缩功能的测试:   / ...
Global site tag (gtag.js) - Google Analytics