nginx 反向代理与负载均衡

本文详细介绍了如何使用Nginx实现反向代理和负载均衡,包括配置示例和实践操作,适合希望提升服务器效率和稳定性的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

或许你很早前听人讲过什么反向代理啊,负载均衡这些听起来逼格很高的专业名词,然鹅在nginx 的世界中,要想实现这些东东,那简直是轻而易举的,没错,nginx 就是这么优秀!!!

1.nginx 实现反向代理

    先附上 nginx 做反向代理官方文档地址:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 。配置反向代理服务器,需要指定协议:http或https ,服务器地址可以是域名或者IP ,端口可选。也可以是本地套( 不在此讨论范围)。

  配置如以下形式:

proxy_pass http://localhost:8000/uri/;

   这里为了实验现象更加直观,直接将请求转发到另一个服务器上。

  先看下在没配置反向代理前,正常访问服务器响应结果如下:

可以查看到 nginx  访问日志内容如下:

现在我们修改proxy.xiaomuxizi.conf (该虚拟主机配置)这个配置文件,加入反向代理配置。

主要加入以下配置:

proxy_pass http://132.232.94.250;

以上配置简单明了,直接将改网站访问请求转发到132.232.94.250 这台服务器。

让nginx 重载配置文件:

nginx -s reload

在刷新浏览器前,我们先在浏览器访问 132.232.94.250 这台服务器。

 

可以看到这台服务器响应的内容是这样子滴。

强制刷新浏览器( 注意一定是强制刷新,不然有可能被浏览器缓存起来了 )

可以查看得到两台服务器的访问日志

反向代理原理一般如下图所示:

深入可参考:https://www.cnblogs.com/Anker/p/6056540.html 这篇博客,写的蛮详细的。

2. nginx 实现负载均衡

  最近迷上了nignx ,感觉小家伙比apache 好玩多了,嘿嘿,这里说下nginx 实现负载均衡,nginx 负载均衡策略有多种,这里暂只说下简单的轮询策略(更准确地来说影视是加权轮询策略),也是内置的负载策略。

  老规矩 ,先附上官方英文文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream 。

  配置形式如下:

upstream backend {
    server backend1.example.com weight=5;
    server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;
    server unix:/tmp/backend3;

    server backup1.example.com  backup;
}

注:upstream 指定定义在http 段中,在其他段中会报错。 

默认地7个请求中,有5个会转发到 backend1.example.com ,1个转发到127.0.0.1:8080 这个,1个会转到/tmp/backend3 本地套。backup1.example.com 为备份服务器。

server : 用来定义服务器地址和可选参数。其中服务器地址可以为域名,也可以为IP地址或本地套,端口可选,不需要加协议( 即不需要写http或https) 。

weight  : 表示权重,权重越大,分配到的请求越多,默认为1。

max_conns  : 限制同时连接到代理服务器的最大活动连接数,默认0,即不做限制。

max_fails : 连接失败,最大尝试次数,默认1。

fail_timeout : 连接超时时间,超过该时间表示连接失败,默认10s。

backup : 指定备份服务器。

下面进入实践部分:

  由于upstream 指令只能定义在http段中,这里换做虚拟机来代理服务器,去请求外网服务器来做演示。

upstream load_balancing{

        server www.guopingzhang.top;
        server 132.232.94.250;

    }

重新加载nginx 配置

nginx -s reload

强制刷新浏览器(一定要强制刷新)

再次强刷

 

基本上每次的请求会平均地转发到不同的服务器上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值