## Nginx 反向代理。

(一)简介

  一、什么是代理服务器

    客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器;经过代理服务器处理后转发给服务器服务器数据处理后转回给代理服务器代理服务器再返回给客户机的一个过程。

    

  二、代理服务器的作用

    1. 防火墙作用

      由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息;

    2. 提高Web访问速度

      可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力;

    3. 实现负载均衡

      内部可以采用多台服务器来组成服务器集群,外部还是可以采用一个地址访问;

(二)架构思路

  一、架构图

    

    先来分析这张图:

      1. 用户会访问 “10.167.167.167(默认80端口)” 。

      2. Nginx收到 PC 端的HTTP请求。

      3. Nginx根据配置将请求负载到 三台Apache的机子上去。

      4. Apache服务器将数据处理后返回给Nginx。

      5. Nginx将数据返回PC

  (二)看完以上的分析后,可能大家有会几个问题:

    1. 为什么使用Nginx做代理服务器?

      a) 轻量级,同样起web 服务,比apache 占用更少的内存及资源;

      b) 非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数;

    2. 为什么使用Apache后台服务器?

      a) rewrite ,比nginx 的rewrite 强大;

      b) 少bug ,nginx 的bug 相对较多;

       c) 稳定

三、架构实战

  (一) Nginx、Apache 安装

    1. http://www.cnblogs.com/bluebirds/p/6386649.html  (这是之前讲到的在window安装nginx的案例, Linux也很简单,这里就不做多讲了)

  (二)Nginx配置

    1. Nginx.conf

      进程数与每个进程的最大连接数

      Nginx进程数,建议设置为等于CPU总核心数

      单个进程最大连接数,那么该服务器的最大连接数 = 连接数 * 进程数

#user  apache;
worker_processes ; # 工作进程的个数 events {
use epoll;
worker_connections ; # 单个进程的连接数
} http {
# 服务器集群(Apache) weight 分配权重 权重越大 分配概率越高.
upstream php_pool{
server 192.168.10.101: max_fails= fail_timeout=30s weight=;
server 192.168.10.102: max_fails= fail_timeout=30s weight=;
server 192.168.10.103: max_fails= fail_timeout=30s weight=;
}
}
server {
listen ;
server_name www.test.com; # 域名 本地
access_log /data/www/logs/nginx_log/access/www.test.com_access.log main ;
error_log /data/www/logs/nginx_log/error/www.test.com_error.log ;
root /data/www/vhosts/www.test.com/httpdocs ;
index index.html index.php;
error_page /.html; location ~ \.php$ {
proxy_pass http://php_pool; # 服务集群池
include proxy_params;
expires -;
} location / {
include proxy_params;
if (!-d $request_filename){
set $flag $flag;
}
if (!-f $request_filename){
set $flag $flag;
}
if ($flag = ""){
proxy_pass http://php_pool;
expires -;
}
}
}

以上就是 反向代理的配置,只要理解服务的访问过程及原理,应该是不难的。

四、学习总结

  本章借助Nginx 和 Apache 搭建了反向代理服务器,实在的基本的负载均衡。

  在目前大多数的应用中,都会将Nginx部署在Linux服务器中,并且会做一些针对负载均衡的优化配置;

  经过这次也更加深入的了解了 Nginx 和 Apache 服务配置两种服务的优缺点,能够更准确的在场景中运用。

Nginx 反向代理、负载均衡的更多相关文章

  1. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  2. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  3. 十.nginx反向代理负载均衡服务实践部署

    期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...

  4. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...

  5. Centos7.4 Nginx反向代理+负载均衡配置

    Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...

  6. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  7. 项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现

    实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备注 nginx VIP:172.17.11.11 反向代理服务器 开启代理功能 设置监控,调度 rs01 RIP ...

  8. 项目实战2.1—nginx 反向代理负载均衡、动静分离和缓存的实现

    总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备 ...

  9. 项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现

    目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:ng ...

  10. Centos 7.6配置nginx反向代理负载均衡集群

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...

随机推荐

  1. react router 4.0以上的路由应用

    thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr& ...

  2. 两种最常用的Sticky footer布局方式

    Sticky footer布局是什么? 我们所见到的大部分网站页面,都会把一个页面分为头部区块.内容区块和页脚区块,当头部区块和内容区块内容较少时,页脚能固定在屏幕的底部,而非随着文档流排布.当页面内 ...

  3. 【Python的迭代器,生成器】

    一.可迭代对象和迭代器 1.迭代的概念 上一次输出的结果为下一次输入的初始值,重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始值 注:循环不是迭代 while True: ...

  4. Xmpp学习之Smack发送消息JID变乱码

    Xmpp学习之Smack发送消息JID变乱码 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6947723 ...

  5. dotnet 命令实战

    以下用实例串起dotnet所有命令,带你玩转dotnet命令. 1.创建(dotnet new) 首先我们创建一个项目,这里我们创建控制台程序,命令如下图所示. dotnet new dotnet n ...

  6. MVC4加载zTree树小控件

    前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...

  7. 原生ajax异步请求基础知识

    一.同步交互与异步交互的概念: * 同步交互:客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户不能做任何其他事情(只能等待响应完才能继续其他请求). * 异步交互:客户端向服务器端发送请 ...

  8. Ext表格分页

    pageSize:配置表格或者数据的数量, autoLoad: { start: 0, limit: 2 }:自动加载时候的参数, proxy中:params: {start: 0,limit: 2} ...

  9. linux 下用renameTo方法修改java web项目中文件夹名称问题

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...

  10. Treasure Hunt

    Treasure Hunt time limit per test 1 second memory limit per test 256 megabytes input standard input ...