08 2011 档案

摘要:原文来自于:http://www.imneio.com/2009/10/zeromq_in_dotnet/ ZeroMQ的.NET封装很简单,基本上是来自C-API的,但有所简化。使用上,由于习惯了在C#里面用强类型约束,API上的int类型让我感觉封装得”非常不.NET”。 首先要明确下ZeroMQ的几个概念: 1. Exchange & Queue:Exchange 是系统数据交换的基础,Queue是消息通道,当Exchange与Queue绑定后,向Exchange提交消息,就会流到其绑定的Queue(s)中。 2. 接收端创建一个Queue后,就能从里面获取内容。 3.Zmq_s 阅读全文
posted @ 2011-08-31 09:25 amityat 阅读(2145) 评论(0) 推荐(1) 编辑
摘要:导读:本文是从《Message Queue Shootout!》这篇文章翻译而来,译文来自外刊IT评论《消息队列软件产品大比拼》。 内容如下: 我花了一周的时间评估比较了一下各种消息队列产品,非常的有趣。我做这个事的动机是因为一个客户有一个很高性能需求。他们的消息信息突破了1百万个并发。目前他们使用的是SQL server,并不理想,我建议他们使用消息队列服务器。 为了对一些相似的候选产品获得一个全面的但是粗浅的性能上的了解,我们它们放在一起做了个测试。我让每个消息产品各发送和接受1百万千条1K的消 息。测试准备的有些仓促,我并没有修改任何的配置,只是快速的看了一下它们的安装文档,安装好每种软 阅读全文
posted @ 2011-08-31 09:15 amityat 阅读(15151) 评论(2) 推荐(2) 编辑
摘要:关于消息对象(MSMQ)的一些基本概念可以从《消息队列(Message Queue)简介及其使用》查阅,这里归纳在.Net 环境下应用消息队列(MSMQ)开发的一些基本对象和方法。 队列类型及其相应的路径格式: Public:[MachineName]\[QueueName] Private:[MachineName]\Private$\[QueueName] Journal:[MachineName]\[QueueName]\Journal$ Machine journal:[MachineName]\Journal$ Machine dead-letter:[MachineName]\D. 阅读全文
posted @ 2011-08-30 22:36 amityat 编辑
摘要:本篇是《基于.Net Remoting的应用程序日志》By Rickie的后续POST,在上一篇POST中,主要分析了codeproject.com上的《AppLogger, a Simple Distributed Application Logger - Part 1》By sebma,并提出了一些改进意见。 这一篇继续分析codeproject.com上的《AppLogger, a Simple Distributed Application Logger - Part 2 (Using MSMQ)》By sebma,基于消息队列(MSMQ)的实际应用程序,其中还包含如下技术:.Net. 阅读全文
posted @ 2011-08-30 22:36 amityat 编辑
摘要:利用 MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法。 MSMQ与XML Web Services和.Net Remoting一样,是一种分布式开发技术。但是在使用XML Web Services或.Net Remoting组件时,Client端需要和Server端实时交换信息,Server需要保持联机。MSMQ则可以在Server离线的情况下工作,将Message临时保存在Client端的消息队列中,以后联机时再发送到Server端处理 阅读全文
posted @ 2011-08-30 22:35 amityat 阅读(424) 评论(0) 推荐(0) 编辑
摘要:在我上一篇文章《ASP.NET中进行消息处理(MSMQ)一》里对MSMQ做了个通俗的介绍,最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用。本文在此基础上继续介绍MSMQ的相关知识点,最后还是通过一个示例程序来分析MSMQ在实际项目开发中的应用。 建议:如果你对MSMQ不够了解,在你阅读本文前请先阅读第一部分:《ASP.NET中进行消息处理(MSMQ)一》。 一、消息传递的优先级 在MSMQ中消息在队列里传输是分有优先级的,这里我就以实例的形式介绍下关于优先级的使用,优先级一共有七种,MessagePriority枚举里全部进行了封装。因这里只作程序演示就不一一列举出,仅... 阅读全文
posted @ 2011-08-30 22:27 amityat 编辑
摘要:在本文的前两篇文章里对MSMQ的相关知识点进行了介绍,很多阅读过这前两篇文章的朋友都曾问到过这样一些问题: 1、如何把MSMQ应用到实际的项目中去呢? 2、可不可以介绍一个实际的应用实例? 3、...... 在前两篇文章里,关于MSMQ常用的技术点基本介绍完毕了,本文主要以MS开源项目PetShop中的MSMQ应用作为案例来介绍MSMQ在实际项目中的 应用。在PetShop里,由于系统使用了多线程的专用应用程序来监控消息队列,在进入PetShop应用分析前,我们先来了解下关于多线程和MSMQ的 相关知识点。 一、多线程和MSMQ 现在有这样一个需求,指定的消息队列里不管有无消息... 阅读全文
posted @ 2011-08-30 22:27 amityat 阅读(344) 评论(0) 推荐(0) 编辑
摘要:MSMQ是微软消息队列的英文缩写。那么什么是消息队列?这些介绍网上一大片这里就不多说了。本文对于大虾级的人物来说这只是小玩意而已,对于初学者来说这文章还是有一定的帮助,希望路过的大虾们别笑话我班门弄斧。 一、MSMQ介绍和安装消息队列 关于MSMQ详细的介绍请大家向http://www.baidu.com/或http://www.g.cn/等专家咨询。 使用消息队列的优点:稳定、消息优先级、脱机能力以及安全性。 消息队列分为用户创建的队列(专用队列)和系统队列,用户队列分为,。我是Windows XP,看下图所示(myQueue为自己创建的消息队列,msmqtriggersnotifi... 阅读全文
posted @ 2011-08-30 22:26 amityat 编辑
摘要:1,temporary queue(由server自动命名)在关闭连接时会自动从server端清除2,basicConsumer,basicGetchannel.basicConsume(queue, noAck, queueingConsumer);channel.basicGet(queue, noAck);noAck = true,不需要回复,接收到消息后,queue上的消息就会清除noAck = false,需要回复,接收到消息后,queue上的消息不会被清除,直到调用channel.basicAck(deliveryTag, false); queue上的消息才会被清除而且,在当前连 阅读全文
posted @ 2011-08-30 21:56 amityat 编辑
摘要:1,ChannelbasicPublish() 用来发送消息,接收返回消息是异步的basicGet() 接收一些简单的消息(Retrieving individual messages)basicConsumer() 用来指定一个Consumer去某个queue上去接收订阅的消息(Retrieving messages by subscription)2,RpcClient,RpcServerrabbitmq java client api 提供的进行Rpc样式远程调用的类 ,即实现同步调用,等待返回结果 阅读全文
posted @ 2011-08-30 21:55 amityat 编辑
摘要:rabbitmq java api 关于消息处理的一个重要的类是channelchannel 主要进行相关定义,发送消息,获取消息,事务处理等。channel可以在多线程中使用,但是在任何时候保证只有一个线程执行命令是很重要的,这在前面 rabbitmq 学习-6-rabbitmq基础 已经说的很清楚了。public interface Channel extends ShutdownNotifier {// 重新得到channel numberint getChannelNumber();//得到当前channel的connectionConnection getConnection().. 阅读全文
posted @ 2011-08-30 21:55 amityat 编辑
摘要:本身使用RpcClient发送消息与同步接收消息的代码是很简单的,如下: RpcClient client = new RpcClient(channel, exchange, routingKey); String msg = "hello world!"; byte[] result = client.primitiveCall(msg.getBytes()); 这里的primitiveCall调用后,当前线程会进行同步等待,等待消息接收端给自己的回复消息 一个完整的发送消息与接收回复消息的图例: 整个流程详解: l创建RpcClient实例 RpcClient cli 阅读全文
posted @ 2011-08-30 21:54 amityat 编辑
摘要:1,bind时候出错 // 定义一个queue,durable(即rabbitmq重启后也不会消失) DeclareOk queueDeclare = channel.queueDeclare("test.queue", true) channel.exchangeDeclare( "test.exchange", "direct"); channel.queueBind("test.queue", "test.exchange", "test.routingkey"); / 阅读全文
posted @ 2011-08-30 21:52 amityat 阅读(2868) 评论(0) 推荐(0) 编辑
摘要:String queue = channel.queueDeclare("test.queue").getQueue(); Rabbitmq Server 会有以下操作: 定义了一个queue,名称为test.queue 把queue的名称(test.queue)作为routingKey,将当前这个queue binding到一个默认的exchange(名称为空,服务器自动创建的)上如果我们 binding的话 channel.queueBind("test.queue", "test.exchange", "test.ro 阅读全文
posted @ 2011-08-30 21:52 amityat 阅读(974) 评论(0) 推荐(0) 编辑
摘要:What messaging scenarios are supported by AMQP and RabbitMQ? AMQP is a very general system that can be configured to cover a great variety of messaging middleware use-cases. For example: Point-to-point communication One of the simple... 阅读全文
posted @ 2011-08-30 21:51 amityat 编辑
摘要:rabbitmq的中文资料真少,和同事lucas经过两周的学习,讨论,测试,终于搞清了部分rabbitmq的知识,先总结一下1,Connection 连接,与rabbitmq server建立的一个连接,由ConnectionFactory创建,虽然创建时指定 了多个server address,但每个connection只与一个物理的server进行连接,此连接是基于Socket进行连接的,这个可以相似的理解为像一个DB Connection。 ConnectionParameters params = new ConnectionParameters(); params.setUse... 阅读全文
posted @ 2011-08-30 21:49 amityat 编辑
摘要:RabbitMQ Server Administrator's Guide http://www.rabbitmq.com/admin-guide.html#installation 1, Rabbitmq DB 第一次启动,会检查是否有数据库,没有则创建 一个db,存放在 C:\Documents and Settings\Administrator\Application Data\RabbitMQ,DB会存储关于user,virtual host,持久化消息等信息 此目录下有两个文件夹:db,log 并会使用到这些资源: virtual host:/ user:gu... 阅读全文
posted @ 2011-08-30 21:45 amityat 编辑
摘要:RabbitMQ 是一个由 Erlang 写成的 实现,AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR 的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。反正现在这个世道通常都是小公司拥抱标准,大企业自己搞一套标准,不过公开标准总还是对大众有利的。 RabbitMQ 是由 LShift 提供的一个 AMQ... 阅读全文
posted @ 2011-08-30 21:43 amityat 编辑
摘要:本例是一个简单的异步发送消息实例1,发送端@Test(groups = { "sunjun" })public class RabbitmqTest { private static Connection connection; static { ConnectionParameters params = new ConnectionParameters(); ConnectionFactory factory = new ConnectionFactory(params); try { connection = factory.newConnection("19 阅读全文
posted @ 2011-08-30 21:42 amityat 编辑
摘要:本例是一个简单的异步发送消息实例1,发送端@Test(groups = { "sunjun" })public class RabbitmqTest { private static Connection connection; static { ConnectionParameters params = new ConnectionParameters(); ConnectionFactory factory = new ConnectionFactory(params); try { connection = factory.newConnection("19 阅读全文
posted @ 2011-08-30 21:41 amityat 编辑
摘要:Windows1,下载下载erlang:erlang.org下载rabbitmq:http://www.rabbitmq.com/download.html2,安装先安装erlang,C:\Program Files\erl5.7.5设置环境变量:ERLANG_HOME=C:\Program Files\erl5.7.5解压rabbitmq,进入dos下,>cd C:\rabbitmq_server-1.7.2\sbin>rabbitmq-service install3,启动>cd C:\rabbitmq_server-1.7.2\sbin>rabbitmq-serv 阅读全文
posted @ 2011-08-30 21:40 amityat 编辑
摘要:AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。 JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。 与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何遵守此数据格式的工具,其创建和解释消息,都能 与其他兼容工具进... 阅读全文
posted @ 2011-08-30 21:35 amityat 编辑
摘要:http://www.infoq.com/cn/articles/AMQP-RabbitMQ准备开始 高级消息队列协议(AMQP1)是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是API(例如JMS2),AMQP客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器3和客户端可以投入使用4。 相关厂商内容 IBM 360°讲师团招募:每个爱技术乐分享的人都有机会 AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目 标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件(MOM)系统,例如发布/订阅队列,没有作 阅读全文
posted @ 2011-08-30 21:34 amityat 编辑
摘要:事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进 的。这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下操作流程,一方面做个总结备份,一方面与大家进行一下分享和交 流。费话就不多说了,进入一下今天的正题:) 这里要说明一下环境:首先我在本地局域网内有两台安装有sqlserver2008的机器(注意:已发布的快照版本无法向老版本数据库兼容,意味着 2008下创建的事务或快照发布,无法被sqlserver2005订阅)。当然这两台机器要放在同一个网段,一方面出现性能和安全性考.. 阅读全文
posted @ 2011-08-30 15:01 amityat 编辑
摘要:安装系统要求:windows server2003 service pack2 注:不能是r2版,否则squid服务启动会出错 1.把squid-2.6.STABLE13-bin.zip解压缩,把里面的squid文件夹拷到c:\下(squid默认的是c:\squid) 2.squid\etc目录下把 squid.conf.default拷贝一份重新命名为squid.confcachemgr.conf.default拷贝一份重新命名为cachemgr.confmime.conf.default拷贝一份重新命名为mime.conf 3.用文本编辑器打开squid.conf,需要... 阅读全文
posted @ 2011-08-30 15:00 amityat 编辑
摘要:最近使用ADO.net Entity应用中遇到一个分表的应用,IDE中是不可视化支持这个的,为此使用了基于LINQ的方法解决了该问题。 数据库分表的意义和目的 分表技术顾名思义,就是把若干个存储相同类型数据的表分成几个表分表存储,在提取数据的时候,不同的用户访问不同的表,互不冲突,减少锁表的几率。 详细参考: http://club.topsage.com/thread-1842602-1-1.html 基于LINQ的实现 具体的步骤 Ø 使用sqlmetal.exe(VS开发工具带) 生成实体类和架构文件 Ø 选择需要使用的实体类和配置文件,形成使用的模板 ... 阅读全文
posted @ 2011-08-30 11:22 amityat 编辑
摘要:参考网上的资料写的一个数据库分表的实例,记下来,一免下次再费力在网上找资料 use Text go 建立文件组, alter database Text add filegroup TextFG1 alter database Text add filegroup TextFG2 alter database Text add filegroup TextFG3 go 在文件组中添加文件,一个文件组可以包含多个文件,每个文件代表的是某一个表的分表。 例如:一个数据库中有两个表需要分表,就可以再每个分组中添加两个分表,分别对应这两个表。 分组最好放在不同的磁盘下,可以充分发挥IO操作... 阅读全文
posted @ 2011-08-30 11:20 amityat 编辑
摘要:Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。下面我就来说说server_name的使用吧:server_name的匹配顺序nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为:1、准确的server_name匹配,例如:server {listen 80;server_name ssdr.info www.ssdr.info;...}2、以*通配符开始的字符串:server {listen 80;server_name 阅读全文
posted @ 2011-08-23 09:35 amityat 阅读(401) 评论(0) 推荐(0) 编辑
摘要:这个漏洞严格上说并不是 Nginx 和 PHP 本身的漏洞造成的,而是由配置造成的。在我之前写的许多配置中,都普遍存在这个漏洞。 简易检测方法:打开 Nginx + PHP 服务器上的任意一张图片,如: http://hily.me/test.png 如果在图片链接后加一串 /xxx.php (xxx为任意字符)后,如: http://hily.me/test.png/xxx.php 图片还能访问的话,说明你的配置存在漏洞。 漏洞分析: 下面通过分析一个很常见的 Nginx 配置来解释下漏洞的成因: server { listen 80; server_name ... 阅读全文
posted @ 2011-08-23 09:34 amityat 阅读(438) 评论(0) 推荐(0) 编辑
摘要:Apache可以直接打开目录列表,nginx也有这种目录浏览功能,可以直接显示目录下的文件,但nginx默认是关闭的,如果需要此功能,则打开即可。 直接在根目录打开,则在server里加上如下三行即可。 autoindex on;autoindex_localtime on;autoindex_exact_size off; 外两个参数最好也加上去: autoindex_exact_size off; 默认为on,显示出文件的确切大小,单位是bytes。改为off后,显示出文件的大概大小,单位是kB或者MB或者GB autoindex_localtime on; 默认为off,显示... 阅读全文
posted @ 2011-08-23 09:34 amityat 阅读(433) 评论(0) 推荐(0) 编辑
摘要:写给想用Nginx作为web服务器新手看的。主要关于二个方面:一是LNMP的安装过程,LNMP绑定域名,ngnix、php升级以及常见的404或301设置。二是VPS不装FTP软件,使用FLASHFXP的SFTP功能上传管理文件的教程。LNMP是VPS建站的首选。本文所使用的VPS为美国BurstNET公司VPS,其基本配制:CPU:1G,内存:512M,硬盘:20G,流量:1000G/月,两 个IP,系统:CentOS5.5_x86。准备绑定的域名:tkcz.net,askbar.net,cnvz.org,cbrcc.com 一 安装LNMP准备工作卸载自带的apache服务器rpm -e 阅读全文
posted @ 2011-08-23 09:33 amityat 阅读(5787) 评论(0) 推荐(0) 编辑
摘要:简单的通过referer判断 location ~ .*\.(gif|jpg|jpeg|png|bmp|wma|mp3|swf)$ { valid_referers none blocked server_names *.163.com 163.com baidu.com; if ($invalid_referer) {return 403;} expires30d;} 阅读全文
posted @ 2011-08-23 09:31 amityat 阅读(211) 评论(0) 推荐(0) 编辑
摘要:Nginx性能优化CPU参数worker_cpu_affinity使用说明 官方说明:http://wiki.nginx.org/NginxHttpMainModule#worker_cpu_affinit 引用 worker_cpu_affinitySyntax: worker_cpu_affinity cpumask [cpumask...]Default: noneLinux only.With this option you can bind the worker process to a CPU, it calls sched_setaffinity().For example, . 阅读全文
posted @ 2011-08-23 09:31 amityat 阅读(5745) 评论(0) 推荐(0) 编辑
摘要:本文建立在Centos基础上,也可应用在其他版本的linux上。适合使用nginx为反向代理的java开发人员。写本文的原因是nginx在apache下面也有 一些监控的工具,不过大部分都是基于php的。java开发者可能不愿意再去配置php环境的apache,本文提供了一种简易专业的nginx监控方 法,比较适合小型应用(server number<10),半小时就能搞定服务器实时状态监控,喝口水,听本lz慢慢讲。 本文可能用到的软件 rrd collectd perl nginx 第一步, apt-get install collectd (for collectd you may 阅读全文
posted @ 2011-08-23 09:29 amityat 阅读(607) 评论(0) 推荐(0) 编辑
摘要:upstream myproxy { server 192.168.100.2; } server { listen 80; server_name test.82438.com test.fouyue.com; #charset utf-8; #access_log logs/host.access.log main; location / { root html; index index.html ind... 阅读全文
posted @ 2011-08-23 09:28 amityat 阅读(278) 评论(0) 推荐(0) 编辑
摘要:apache 要使apache服务器做对同一IP地址的连接限制,需要mod_limitipconn来实现。一般需要手动编译。不过模块作者也提供了一些编译好的模块,根据自己的apache版本可以直接使用。 1。编译方式: tar zxvf mod_limitipconn-0.XX.tar.gz cd mod_limitipconn-0.XX make apxs=/usr/local/apache/bin/apxs —–这里要按你自己的路径设置 make install apxs=/usr/local/apache/bin/apxs —–这里要按你自己的路径设置 2.rpm安装方式: 直接下载mo 阅读全文
posted @ 2011-08-23 09:28 amityat 阅读(846) 评论(0) 推荐(0) 编辑
摘要:使用Nginx时,如果要让一些附件比如 txt,pdf,doc等不直接在浏览器打开,而弹出另存为的对话框(也就是下载) 则可以在nginx的加上头配置如下: if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){ add_header Content-Disposition: ‘attachment;’; } 阅读全文
posted @ 2011-08-23 09:27 amityat 阅读(391) 评论(0) 推荐(0) 编辑
摘要:nginx 预压缩(gzip)静态文件 对于静态文件先压缩再输出是再正常不过的事了,但是这种压缩都是动态的,在每次请求都会先压缩再输出,大大浪费了很多 cpu。如果前端加了反向代理缓存,那能减少这种浪费。但不是每个生产环境前端都有缓存的。而nginx有个模块Gzip Precompression,这个模块的作用是对于需要压缩的文件,直接读取已经压缩好的文件(文件名为加.gz),而不是动态压缩,对于不支持 gzip的请求则读取原文件。 编译nginx的时候需要把--with-http_gzip_static_module参数加上。 #启动预压缩功能,对所有类型的文件都有效 gzip_stati. 阅读全文
posted @ 2011-08-23 09:26 amityat 阅读(670) 评论(0) 推荐(0) 编辑
摘要:nginx使用proxy模块时,默认的读取超时时间是60s。1. send_timeout syntax: send_timeout the time default: send_timeout 60 context: http, server, location Directive assigns response timeout to client. Timeout is established not on entire transfer of answer, but only between two operations of reading, if after this tim... 阅读全文
posted @ 2011-08-23 09:25 amityat 阅读(6766) 评论(0) 推荐(0) 编辑
摘要:通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况。Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过web界面,一种是通过命令,web查看要比命令查看显示的结果精确一些。下面介绍这两种查看方法 No1、通过浏览器查看 通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 –with-http_stub_status_module 然后配置Nginx.conf,在server点里面加入如下内容 location /nginx_status { stub_status on; access_log off; allow 19 阅读全文
posted @ 2011-08-23 09:24 amityat 阅读(3723) 评论(0) 推荐(0) 编辑
摘要:上一篇(windows下nginx+mono+fastCGI部署asp.net网站)参考了诸多前辈终于在windows下部署成功,唯一点遗憾就是asp.net webform下面样式有点不对劲,mvc倒还可以. 本篇说说我近两天折腾Ubuntu的成果,对于一个没接触过Linux系统的人来说得从基础干起呀.下面先简单的介绍下Ubuntu系统下面常用的几条命令,扫扫盲: 文件管理 cd .. 回当前目录的上一级目录 文件管理 cd - 回上一次所在的目录 文件管理 cd ~ 或 cd 回当前用户的宿主目录 文件管理 cd /etc进入某个目录. 文件管理 # cp cp /路经/文件 ./ 移.. 阅读全文
posted @ 2011-08-23 09:22 amityat 阅读(260) 评论(0) 推荐(0) 编辑
摘要:1,什么是nginx 简介Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki:http://wiki.codemongers.com/NginxChs Nginx的优点nginx做为H 阅读全文
posted @ 2011-08-23 09:20 amityat 阅读(421) 评论(0) 推荐(0) 编辑
摘要:在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1; #全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid; #工作模式及连接数上限events { use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能 worker_connections 102. 阅读全文
posted @ 2011-08-23 09:19 amityat 阅读(247) 评论(0) 推荐(0) 编辑
摘要:最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大.. nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。 如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置Nginx负载的写法一样,故不分开介 阅读全文
posted @ 2011-08-23 09:18 amityat 阅读(243) 评论(0) 推荐(0) 编辑
摘要:MongoDB 很简单,参照着一些常用的教程下载相应平台的二进制包、创建dbpath然后启动基本上就可以跑了。但是如果你真的打算在生产环境中使用MongoDB,还是请多进行深入的研究,下面是一位MongoDB的爱好者在参加完MongoNYC大会后总结的十个自己了解到的知识点,看看有没有你不知道的吧。 1. MongoDB有一个大的全局锁,这使得一个MongoDB Daemon只能同时进行一个写操作,即使是对不同collection的操作,也只得排队。2. MongoDB并没有一个基于统计的查询优化器,对查询并发的执行多个不同的计划,在最快的那个返回后就终止其它任务,并将这个最快的计划指导查询。 阅读全文
posted @ 2011-08-15 20:26 amityat 阅读(346) 评论(0) 推荐(0) 编辑