使用Nginx实现反向代理和负载均衡

开发互联网项目基本上就不得不使用到nginx,这里自己对nginx做一个总结。

ngnix是俄罗斯开发的一个轻量级的web服务器,优点就是占用内存少,并发处理能力强,目前国内大部分互联网项目都是使用到ngnix。

核心功能:分发请求。分发请求是nginx最核心的功能,是实现ngnix反向代理、负载均衡功能的前提。

一般在项目中,使用ngnix实现两个功能

ngnix作为http服务器

加载远程服务器资源如图片服务器、静态页面时,浏览器不能直接访问这些静态资源,必须遵循http协议,
ngnix就可以作为http服务器遵循http协议实现这些远程服务器资源访问。

ngnix作为反向代理服务器

在正向代理中中间代理服务器对于客户机是可见的(一般需要客户机自己配置),客户机通过代理服务器访问远程服务器,因为代理服务器是暴露状态,网络相对来说不够安全。
反向代理则代理服务器对于客户机是不可见的,一般是跟远程服务器绑定,用户只需要发送请求,不知道是否有通过代理来访问远程服务器,网络相对安全。

ngnix实现负载均衡

负载均衡:将所有请求平均分发到每台服务器。
作用:通过作为反向代理服务器实现,在集群项目中需要用到,提高了项目的并发访问量和容错性,实现项目高可用高并发的需求。

ngnix执行过程

ngnix根目录结构
    conf:核心配置文件
    html:静态资源
    sbin:执行命令文件

在conf目录下,有一个ngnix.conf文件,这个文件就是ngnix的核心配置文件,里面配置了ngnix服务端口,定位范围资源的路径,在ngnix启动的时候,就会默认该配置文件,对于ngnix的反向代理和负载功能的配置也是通过配置这个文件来实现的。

ngnix实现反向代理和负载均衡配置示例

配置ngnix也就是配置conf目录下的ngnix。conf配置文件。
实现两个不同服务器反向代理

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream e3mall{
    server 192.168.66.66:9001;
    }

    upstream jd{
    server 192.168.66.66:9000;
    }
    server {
        listen       80;
        server_name  www.e3mall.cn;
        location / {
            #root   html;
            #index  index.html index.htm;
        proxy_pass http://e3mall;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       80;
        server_name  www.jd.com;
        location / {
            #root   html-81;
            #index  index.html index.htm;
        proxy_pass http://jd;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    } 
}

在server在声明代理地址 proxy_pass http://e3mall;再通过upstream e3mall{ }配置好实际的ip地址。

实现负载均衡

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream e3mall{
    server 192.168.66.66:9000 weight=2;
    server 192.168.66.66:9001 weight=1;
    server 192.168.66.66:9002 weight=1;
    }

    server {
        listen       80;
        server_name  www.e3mall.cn;
        location / {
            #root   html;
            #index  index.html index.htm;
        proxy_pass http://e3mall;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }   
}

先使用反向代理 proxy_pass http://e3mall ,在通过upstream e3mall{ }配置负载均衡的几个服务器IP地址,weight表示在分发请求的占比,越高表示分到的请求越多,默认可以不写,以轮询的方式分发请求。

Nginx是一款性能、轻量级的Web服务器,它可以作为反向代理服务器负载均衡器。下面是Nginx实现反向代理负载均衡的详细过程: 1. 反向代理 反向代理是指客户端请求的资源不是直接由服务器提供,而是由代理服务器转发请求到后端服务器获取资源并返回给客户端。反向代理可以隐藏后端服务器的真实IP地址,提了系统的安全性。 Nginx实现反向代理的步骤如下: 1) 在Nginx配置文件中配置反向代理服务器的IP地址和端口号。 2) 配置反向代理的location块,将客户端请求的URL转发到后端服务器。 3) 配置后端服务器的IP地址和端口号。 2. 负载均衡 负载均衡是指将客户端请求均匀地分发到多个后端服务器上,以达到提系统响应速度和增加系统的可靠性的目的。Nginx实现负载均衡的方式有多种,其中常用的有轮询方式和IP hash方式。 轮询方式是指将客户端请求轮流分配到后端的每台服务器上,每次请求都按照服务器列表的顺序依次分配。轮询方式是Nginx默认的负载均衡方式。 IP hash方式是指根据客户端的IP地址计算出一个hash值,然后将该请求分配到hash值对应的后端服务器上,这样相同IP地址的请求总是被分配到同一台后端服务器上。 Nginx实现负载均衡的步骤如下: 1) 在Nginx配置文件中配置后端服务器的IP地址和端口号。 2) 配置upstream块,将多个后端服务器配置在upstream块中。 3) 配置负载均衡的方式,例如轮询方式或IP hash方式。 总体来说,Nginx作为反向代理负载均衡器,可以提系统的性能和可靠性,是企业级应用中非常常用的技术之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值