Nginx 反向代理、负载均衡

## 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  4;    # 工作进程的个数

events {
    use epoll;
    worker_connections  1024;  # 单个进程的连接数
}

http {
    # 服务器集群(Apache) weight 分配权重 权重越大 分配概率越高.
    upstream php_pool{
        server 192.168.10.101:8080 max_fails=0 fail_timeout=30s weight=1;
        server 192.168.10.102:8080 max_fails=0 fail_timeout=30s weight=1;
        server 192.168.10.103:8080 max_fails=0 fail_timeout=30s weight=2;
    }
}
server {
    listen 80;
    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  404 403 /404.html;

    location ~ \.php$ {
        proxy_pass http://php_pool;  # 服务集群池
        include proxy_params;
        expires -1;
    }

    location / {
        include proxy_params;
        if (!-d $request_filename){
                set $flag 1$flag;
        }
        if (!-f $request_filename){
                set $flag 2$flag;
        }
        if ($flag = "21"){
                proxy_pass http://php_pool;
                expires -1;
        }
    }
}

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

四、学习总结

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

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

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

时间: 2024-12-15 06:53:14

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

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

Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65.192 Nginx-Web 在三台Server安装Nginx: # yum install -y nginx 在172.16.65.190配置Nginx反向代理+负载均衡: # vim /etc/nginx/nginx.conf user nginx; worker_processes auto;

nginx反向代理负载均衡简述

基于浏览器实现分离案例if ($http_user_agent ~ Firefox) {rewrite ^(.)$ /firefox/$1 break;}if ($http_user_agent ~ MSIE) {rewrite ^(.)$ /msie/$1 break;}if ($http_user_agent ~ Chrome) {rewrite ^(.*)$ /chrome/$1 break;} 防盗链案例:location ~* .(jpg|gif|jpeg|png)$ {valid_r

25,Nginx反向代理负载均衡

1,什么是反向代理1,代理顾名思义就是代理某人去做某事,比如律师代理,中介代理.往往你不能直接自己做的事,都需要找代理 2,为什么要用反向代理1,在没有代理服务器之前,用户访问web服务器是如下图:2,在实际业务生成环境中,比如我们访问web服务器,在用户和服务器直接往往有一台或者多台代理服务器用来转发你的访问请求,代你去访问web服务器,然后将结果返回给用户.当你只有一台web服务器的时候,这种代理看起来其实意义不大,用户直接访问web服务器不是更快?但生产中不仅仅一台web,这个时候用代理来

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

Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且简单

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

实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备注 nginx VIP:172.17.11.11 反向代理服务器 开启代理功能 设置监控,调度 rs01 RIP:172.17.22.22 后端服务器 stasic-srv 组 rs02 RIP:172.17.1.7 后端服务器 stasic-srv 组 rs01 RIP:172.17.77.77 后端服务器 defautl-srv 组 rs02 RIP:172.17.252.111 后端服务器 defaut

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

目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:nginx实现缓存功能 1.环境准备:同上实验,实验结构图如下: 2.设置代理服务器的配置文件 3.测试:访问 http://172.17.11.11/ 总项目流程图,详见http://www.cnblogs.com/along21/p/7435612.html 回到顶部 实验一:实现反向代理负载均衡且

Centos 7配置nginx反向代理负载均衡集群

一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web01服务器 192.168.2.78    web02服务器 二,安装nginx软件(以下操作三台虚拟机都要进行)1,安装依赖软件包命令集合 yum -y install openssl openssl-devel pcre pcre-devel gcc 2,安装nginx软件包命令集合 mkdir

Nginx反向代理 负载均衡 页面缓存 URL重写及读写分离

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

nginx反向代理负载均衡(轮询权重IPHash)

1 Nginx反向代理 1.1 实现图片回显 1.1.1 反向代理 说明:当用户发出image.jt.com/2018/1.jpg时,首先将请求发往Nginx.经过Nginx内部配置自动进行路径的切换.E:jt-upload/2018/1.jpg并且访问切换后的路径.将返回的结果再次返回给浏览器.这时浏览器可以进行正常的展现 1.1.2 Nginx介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是

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

通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常用配置的说明.即学即用,你还在等什么?一睹为快先了解Nginx的三大功能Nginx 可以作为一台http服务器.可以做网站静态服务器,比如图片服务器,高效,减轻服务器压力.同时它也支持https服务.Nginx 可以配置多台虚拟主机.可以实现在一台服务器虚拟出多个网站效果,省钱.Nginx 最重要的是反向代理,负载均衡.在服务器集群中,Ngin