如何用nginx实现动静分离的负载均衡集群(nginx怎么做动静分离)

如何用nginx实现动静分离的负载均衡集群(nginx怎么做动静分离)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-07-08
文章简介

本次用到的操作系统及服务:本次实验一共需要3台服务器,一台nginx做为负载均衡分发器和动静分离的分发器,两台apache做为后端服务器,使用nginx实现两台apache服务器的负载均衡和动静分离。

2025阿里云双十一服务器活动

本次用到的操作系统及服务:

本次实验一共需要3台服务器,一台nginx做为负载均衡分发器和动静分离的分发器,两台apache做为后端服务器,使用nginx实现两台apache服务器的负载均衡和动静分离。

操作系统:centos7.6nginx版本:1.22版本apache版本:系统默认自带的2.4.6php版本:系统默认自带的5.4.16

apache和php版本,都可以升级为最新版本,可以从官网下载安装。

一般我们的服务器分很多种,有文件服务器,图片服务器,数据库服务器。

  • 静态文件处理:可以使用nginx或apache

  • 动文件处理:apache,tomcat

  • 本文中我们使用nginx实现动静分离的负载均衡集群。

    服务器的负载均衡是指将来自客户端的请求分摊到多台服务器上,以达到提高系统性能、增加系统可靠性、避免单点故障等目的的技术。

    通过负载均衡,可以使得多台服务器共同处理客户端的请求,从而提高系统的整体性能和可用性。

    在负载均衡中,通常会把多台服务器组成一个服务器集群,客户端向负载均衡器发送请求,负载均衡器会根据一定的算法将请求分配到服务器集群中的一台或多台服务器上进行处理。负载均衡的算法有很多种,常见的有轮询、随机、最小连接数等。

    负载均衡策略可以变得更加复杂,例如使用高级功能,如会话保持、健康检查和动态权重调整来实现。通过对实际需求的配置和调整,可以提高负载均衡系统的灵活性和效率。

    Nginx的upstream负载的5种方式,目前最常用前3种方式:1)轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。2)weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。3)ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。4)air(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。5)url_hash(第三方)按访问url的hash结果来分配请求,使同样的url定向到同一个后端服务器,后端服务器为缓存时比较有效

    三.安装nginx作为流量分发器

    3.1安装nginx前准备安装依赖工具

    [root@mufeng41~]#yum-yinstallgccgcc-c++autoconfautomake

    [root@mufeng41~]llnginx-1.12.2.tar.gz

    -rw-r--r--.1rootroot9816878月272019nginx-1.12.2.tar.gz

    [root@mufeng41~]#tarxfnginx-1.12.2.tar.gz-C/usr/local/src/

    登录并查看

    [root@mufeng41src]#cdnginx-1.12.2/

    [root@mufeng41nginx-1.12.2]#ls

    autoCHANGESCHANGES.ruconfconfigurecontribhtmlLICENSEmanREADMEsrc

    [root@mufeng41nginx-1.12.2]make&&makeinstall

    如何判断是否执行成功?

    [root@mufeng41nginx-1.12.2]#useradd-u8000-s/sbin/nologinnginx

    [root@mufeng41nginx-1.12.2]#idnginx

    uid=8000(nginx)gid=8000(nginx)组=8000(nginx)

    [root@mufeng41nginx-1.12.2]find/-namenginx.conf

    /usr/local/nginx/conf/nginx.conf

    [root@mufeng41nginx-1.12.2]#/usr/local/nginx/sbin/nginx

    如何用nginx实现动静分离的负载均衡集群,nginx怎么做动静分离

    tcp000.0.0.0:800.0.0.0:*LISTEN25286/nginx:master

    udp000.0.0.0:580760.0.0.0:*

    查看效果

    [root@mufeng41nginx-1.12.2]#systemctlstopfirewalld.service

    [root@mufeng41nginx-1.12.2]#curl-I127.0.0.1

    Date:Fri,24Mar202311:06:29GMT

    Last-Modified:Fri,24Mar202311:01:53GMT

    Accept-Ranges:byte

    四.配置nginx成为分发器

    [root@mufeng41conf]#cpnginx.confnginx.conf.bak

    [root@mufeng41conf]#

    4.2把nginx设置成分发器,实现动静分离

    indexindex.htmlindex.htm;

    if($request_uri~*\.html$){

    proxy_passhttp://htmlservers;

    if($request_uri~*\.php$){

    proxy_passhttp://phpservers;

    proxy_passhttp://picservers;

    }

  • 接下来设置负载均衡对应的IP

    在nginx配置文件最后一行}前添加一下内容:

    }

    配置文件是否有错误

    [root@mufeng41conf]#/usr/local/nginx/sbin/nginx-t

    nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok

    nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful

    [root@mufeng43~]#yuminstallhttpdphp-y

    [root@mufeng43~]cd/var/www/html/

    [root@mufeng43html]#vimufeng.php

    [root@mufeng43html]#catmufeng.php

    >

    以上就是如何用nginx实现动静分离的负载均衡集群的详细内容,更多请关注主机测评网其它相关文章!

    标签:
    服务器比类似规格的PC硬件更贵的7个原因(服务器为什么比电脑贵)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!