nginx 反向代理

来源:互联网 发布:linux qt usb 编辑:程序博客网 时间:2024/06/16 12:15
1.什么是反向代理:
     在计算机网络中,反向代理是代理服务器的一种。它根据客户端的请求,从后端的服务器上获取资源,然后再将这些资源返回给客户端。与前向代理不同,前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端作为代理使用,而不是客户端。
(1) 正向代理:

(2) 反向代理:

     反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。也是请求的转发。

2.使用反向代理有什么好处:
(1) 并发 :
     官方测试Nginx在24G内存的机器上,能够处理的并发请求连接数达到过200万。由于Nginx使用基于事件驱动的架构能够并发处理百万级别的TCP连接,高度模块化 的设计和自由的许可证使得扩展Nginx功能的第三方模块层出不穷,而且优秀的设计带来了极佳的稳定性,因此其作为Web服务器的反向代理被广泛应用到大流量的网站上,包括腾讯、新浪、网 易、淘宝等访问量巨大的网站。
(2) 可扩展性:
     反向代理可以从后端服务器池中添加删除服务器来响应负载;
(3) 七层路由:
     拥有更完善的控制机制;如请求速率;连接限制;各种授权方案;
(4) 缓存:
     虽说nginx的缓存是通过硬盘实现的;不过现在不是有什么固态硬盘么?
(5) 弹性 :
     加密和SSL加速 负载均衡  缓存静态内容  压缩  减速上传  安全  更多.....

3.Nginx作为反向代理的特点
     接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送后后端web服务器,极大的减轻后端web服务器的压力;
     nginx代理和后端web服务器间无需长连接;
     发送响应报文时,是边接收来自后端web服务器的数据,边发送给客户端的;
     调度灵活。NGINX工作在网络协议栈的第七层,能够对HTTP应用请求进行解析和分流,支持比较复杂的正则规则,具有更优化的负载均衡效果。
     网络依赖型低。NGINX对网络的依赖程度非常低,理论上讲,只要能够ping通就可以实施负载均衡,而且可以有效区分内网和外网流量。
     支持服务器检测。NGINX能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。

4.nginx实现反向代理
     两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。
     两个域名是www.sian.com.cn和www.sohu.com
     nginx服务器使用虚拟机192.168.101.3

     第一步:安装两个tomcat,分别运行在8080和8081端口。
     第二步:启动两个tomcat。
     第三步:反向代理服务器的配置
upstream tomcat1 {
  server 192.168.25.148:8080;
}
server {
listen       80;
server_name  www.sina.com.cn;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    proxy_pass   http://tomcat1;
    index  index.html index.htm;
}
}

upstream tomcat2 {
         server 192.168.25.148:8081;
}
server {
listen       80;
server_name  www.sohu.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    proxy_pass   http://tomcat2;
    index  index.html index.htm;
}
}
     第四步:nginx重新加载配置文件
     第五步:配置域名
     在hosts文件中添加域名和ip的映射关系
     192.168.25.148 www.sina.com.cn
     192.168.25.148 www.sohu.com

原创粉丝点击