最近在使用Apache,全称是Apache HTTP Server,是Apache Software Foundation机构下的一个项目。Apache是一个WEB服务软件,也称为中间件。这提供一个与具体语言无关的WEB服务平台。也就是说,可以用Apache来做ASP,ASPX,PHP,JSP等等。这也就是说,Apache也能像微软的IIS一样,运行不同语言的产品。但是Apache还可以配置为反向代理服务器,可以做负载平衡,这个是比较实在的功能。
但是没有接触Apache的新手,要配置好一台实用的Apache服务器也不是易事。例如让Apache运行Tomcat提供的JSP环境,该如何配置呢?上网GOOGLE之,出来一堆信息。使用MOD_JK,ApacheModuleJServ.DLL等等(关于ApacheModuleJServ可参考What is the WebApp Module),而新出来的Apache2.2又有Proxy(MOD_PROXY.SO)可用了。那么什么是Proxy模块呢?这就要行了解反向代理这一概念了。
先解说一下常用的代理服务,即转发代理服务,是客户端与原始服务器之间的一个中间服务器。为了从原始服务器获取内容,客户端发送请求到代理服务器,然后代理服务器从原始服务器中获取内容再返回给客户端。客户端必须专门地配置转发代理来访问其他站点,如在浏览器中配置代理服务器地址及端口号等。转发代理服务器的一个典型应用就是为处于防火墙后的内部客户端提供访问外部Internet网,比如校园网用户通过代理访问国外网站,公司内网用户通过公司的统一代理访问外部Internet网站等。转发代理服务器也能够使用缓存来缓解原始服务器负载,提供响应速度。
而使用Proxy可以配置Apache作为一台反向代理服务器。示意如图。在客户端来看它就像一个普通的 Web服务器。客户端不要做任何特殊的配置。客户端发送普通的请求来获取反向代理所属空间的内容。反向代理决定将这些请求发往何处,然后就好像它本身就是原始服务器一样将请求内容返回。反向代理服务器的一个典型应用就是为处于防火墙后的服务器提供外部 Internet用户的访问。反向代理能够用于在多个后端服务器提供负载均衡,或者为较慢的后端服务器提供缓存。此外,反向代理还能够简单地将多个服务器映射到同一个URL空间。
反向代理服务器(Reverse Proxy Server)可用于缓存客户的请求以提高客户访问速度,所以反向代理服务器又称为加速服务器。对于客户送过来的请求,反向代理服务器的工作方式如下:
客户端向反向代理服务器发出请求。
如果有配置缓存,反向代理服务器先查自己缓存的内容并送回()。
如果没有配置缓存,可做负载均衡处理,将请求进一步送到某个WEB服务器。
WEB服务器作处理后,反馈结果给反向代理服务器。
注意:WEB服务器不定具有Internet公网地址,通常它也可以称为后端服务器。
从反向服务器的工作过程来看,它主要有这些特点:
加快对客户的响应时间,减轻WEB服务器负载。
保障了WEB服务器的安全,因为WEB服务器可以放到代理的后端,并使用防火墙隔离。
对WEB服务器进行负载均衡(Load Balance)。
在使用Apache的过程中,发现了另一个强劲的工具,Nginx。 Nginx 读音为engine X,是一个高能小巧的WEB服务器软件,还支持IMAP/POP3/SMTP代理服务器。 是作者Igor Sysoev为俄罗斯一大型站点Rambler.ru开发的,据说它已经在该站点运行超过两年半了。 现在软件源代码以类BSD许可证的形式发布。尽管还是测试版,但是Nginx的用户总是在夸它稳定性、丰富的功能集、示例配置文件和低系统资源等等优点了。
这里是Nginx作为一个高性能的WEB服务器优越的特性收集:
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。
而另外一个web服务器是Lighttpd,它运行在Youtube的后台,知名度很高。Lighttpd特色在于它能做Flash streaming和对fastcgi的支持,这样对于Ruby on Rails之类的程序提速不少,比起Apache要好很多。但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd,差不多什么都有,而且比Lighttpd对于URL rewrite的支持更完善一点。对于用来提供静态文件二者都要比Apache好很多,主要就是占用的内存小。
分享到:
相关推荐
反向代理服务器对外部用户透明,用户并不直接与内部服务器通信,而是与反向代理服务器交互,由反向代理服务器决定将请求路由到哪个内部服务器。 在Nginx中配置反向代理,同样需要编辑配置文件,但这次我们将指定一...
使用Java编写的反向代理程序(源代码),通过简单的参数配置即可实现某些特定站点的反向代理,并在此过程中改变一些站点的特定行为。例如:允许特点站点跨域访问被代理的站点,或者屏蔽被代理站点识别请求访问客户端...
nginx多网站反向代理
Odoo反向代理配置 超级详细的反向代理配置包含Nginx配置的相关源码以及对应说明 针对Odoo反向代理做了详细的说明
freeswitch支持UDP、TCP、WS(websocket)、WSS方式进行注册,而反向代理是指通过nginx配置,通过WSS的方式连接WS,这样使得freeswitch连接对外是加密的;当然freeswitch本身是支持WSS的, 用ngnix一般除了反向代理,...
基于Netty实现的内网穿透&反向代理的工具 (支持TCP上层协议和HTTP的穿透式反向代理).zip
反向代理反向代理反向代理反向代理反向代理反向代理反向代理反向代理反向代理
nginx反向代理配置 动静分离不错的代理
反向代理是位于服务器和客户端之间的一个中间层,客户端对反向代理发起请求,然后代理会转发这些请求到实际的服务器上,并将响应结果回传给客户端。这样做的好处包括负载均衡、安全保护、缓存以及我们关心的内网穿透...
`nginx`作为一款高性能的反向代理服务器和负载均衡器,常用于处理静态资源,而`tomcat`则作为Java应用服务器,主要负责运行Java Web应用。下面我们将详细探讨`nginx1.6`的安装、`tomcat7`的安装以及它们之间的反向...
Web APP 实现类似 Nginx 反向代理转发功能 Web APP 如何实现类似 Nginx 反向代理转发功能是指在 Web 应用程序中实现反向代理转发的功能,以便将用户的请求转发到其他服务器或应用程序上。反向代理转发是一种常用的...
在Windows Server 2019 (Win2019) 上部署IIS(Internet Information Services)作为反向代理以及配置Rewrite模块是一项重要的任务,尤其对于前端开发人员来说,这有助于实现Vue.js应用的高效部署。本文将详细介绍...
JRebel反向代理工具window版
windows内网穿透,反向代理工具
在Web服务器架构中,反向代理扮演着至关重要的角色,它隐藏了后端服务器的真实身份,增强了系统的安全性和可扩展性。7ghostPHP反向代理脚本通过将HTTP请求重定向到其他服务器,实现了这一目的,尤其适用于负载均衡和...
1. 在第一层 Nginx 反向代理节点(例如:21.67.38.47)上配置 Nginx,设置监听 80 端口,并将所有流入的 80 端口流量转发到第二层 Nginx 反向代理的域名(如 host.second.com:80)。 ``` upstream default_pools...
【标题】:“Tomcat反向代理机制视频” 在IT行业中,Tomcat是一个广泛使用的开源Java Servlet容器,它主要负责执行Java Web应用程序。反向代理则是网络服务架构中的一个重要概念,通常用于提高系统的可扩展性和安全...
### Nginx 反向代理知识点详解 #### 一、代理概述 代理是一种常见的网络通信方式,它在客户端与服务器之间架设了一座桥梁。在实际应用中,代理分为正向代理和反向代理两种类型。 **代理的概念:** 在Java设计模式...