Linux Centos7 实现nginx的七层负载均衡和动静分离

一:环境
准备一个nginx代理服务器 三台http服务器两台处理静态和一台处理动态。(nginx/1.17.3)

二、在nginx主配置文件配置nginx反向代理upstream(地址池)指向真实服务器

         vim /etc/nginx/nginx.conf

在http标签中加

    upstream static {
    server 10.30.161.214:80 weight=2 max_fails=2 fail_timeout=2s;
    server 10.30.161.242:80 weight=2 max_fails=2 fail_timeout=2s;
    }
    upstream php {
    server 10.30.161.241:80 weight=2 max_fails=2 fail_timeout=2s;
    }

三、在子配置文件中

    vim /etc/nginx/conf.d/proxy.conf

1、动态资源加载
在server标签中添加

    location ~ \.(php|jsp)$ {
    proxy_pass http://phpserver;
    #指向动态服务器地址池
    proxy_set_header Host $host:$server_port;
    #重新定义或者添加发往后端服务器的请求头$host真实服务器主机名$server_port端口
    proxy_set_header X-Real-IP $remote_addr;
    #启用客户端真实地址(否则日志中显示的是代理在访问网站)
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #显示http请求端的真实IP
    }

2、静态资源加载

        location ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$ {
        proxy_pass http://static;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }

至此代理服务器配置完成

四、两台静态服务器的单独配置

    server {
    listen 80;
    server_name     localhost;

    location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
    root   /web1;
    index  index.html;
}

}
配置静态项目
静态服务器1

        mkdir /web1
        echo "this is jingtai11111" > /web1/index.html

静态服务器2

        mkdir /web1
        echo "this id jingtai22222" > /web1/index.html

五、一台动态服务器的单独配置

    yum 安装php7.1
[[email protected] ~]#rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[[email protected] ~]#rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[[email protected] ~]#yum install php71w-xsl php71w php71w-ldap php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-mcrypt -y
[[email protected] ~]#yum install -y php71w-fpm
[[email protected] ~]#systemctl start php-fpm
[[email protected] ~]#systemctl enable php-fpm

编辑nginx的配置文件:

server {
        listen      80;
        server_name     localhost;
        location ~ \.php$ {
            root           /web1;  #指定网站目录
            fastcgi_pass   127.0.0.1:9000;    #指定访问地址
            fastcgi_index  index.php;       #指定默认文件
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
            include        fastcgi_params;  #包含nginx常量定义
                }
        }

配置动态web1上项目

mkdir /web1
 cd /web1
 vim index.php
 <?php
phpinfo();
?>

六、测试
1,静态访问测试
用浏览器访问代理服务器IP 10.30.161.51/index.html
即可访问到静态服务器/web1上的项目,并且两台服务器来回切换,这就实现了nginx的负载均衡

2,动态访问测试
用浏览器访问代理服务器IP 10.30.161.51/index.php
即可访问到动态服务器/web1上的项目,从而实现了nginx的动静分离

原文地址:https://blog.51cto.com/14482279/2436513

时间: 2024-10-09 21:00:06

Linux Centos7 实现nginx的七层负载均衡和动静分离的相关文章

Nginx实现七层负载均衡配置指导

本文描述了如何使用Nginx实现在应用层实现7层负载均衡功能,Nginx支持虚拟主机,可以按照轮询,IP哈希,URL哈希,权重方式对后端服务器做负载均衡,还支持后端服务器健康检查功能.废话不多说,详细配置见下文~ 测试模型如下: 1.一台Nginx做负载负载均衡代理   具体配置centos5.8 ip 10.0.211.5 2.三台tomcat做业务逻辑处理        具体配置centos5.8 10.0.211.2 10.0.211.3 10.0.211.4 具体部署步骤: 1.    

LNMT架构部署:Linux+Nginx+Mysql+Tomcat(负载均衡,动静分离)

环境描述:虚拟机准备两台,一台作为nginx服务器+mysql服务器,IP为:192.168.55.129:另外一台作为2台Tomcat服务器,IP为:192.168.55.130.客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端:如果为动态内容,则由nginx反代至后端的Tomcat服务器. 在IP为192.168.55.129的服务器上安装和配置nginx关闭防火墙和selinux [[email protected] ~]# systemctl

Nginx 反向代理、负载均衡与动静分离

1.环境: 前端Nginx服务器:主机名:node5.a.com IP:192.168.10.205  编译安装nginx 1.6.3 后端tomcat: Server1--ip:192.168.10.209  主机名:node9.a.com Server2--ip:192.168.10.210  主机名: node10.a.com 2.Ngginx配置: user  nginx; worker_processes  1; events { use epoll; worker_connectio

Nginx反向代理、负载均衡、动静分离、缓存、压缩、防盗链、跨域访问

一.反向代理 1.在192.168.189.130机器启动tomcat服务,http://192.168.189.130:8080/ 访问服务正常 2.在192.168.189.131机器配置nginx server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://192.168.189.130:80

nginx+apache+redis实现负载均衡、动静分离、session共享

环境centos6.5 nginx:192.168.1.202 tomcat1:192.168.1.240 tomcat2:192.168.1.201 redis:192.168.1.116 nginx安装: yum install -y nginx 如提示包不存在,安装epel源即可 rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 修改nginx配置文件 vim /etc/nginx

Nginx七层负载均衡的几种调度算法

Nginx七层负载均衡的几种调度算法 ??Nginx是一款轻量级的高性能web服务器,同时也是一款非常优秀的负载均衡器和反向代理服务器.由于支持强大的正则匹配规则.动静分离.URLrewrite功能及安装配置简单且对网络稳定性依赖非常小等优点,所以常用来做为七层负载均衡使用.在硬件不差的情况下,通常可以稳定支持几万的并发连接,在硬件性能足够好,且对系统内核参数及Nginx配置进行优化甚至可以达到10万以上的并发. 以下是Nginx作为七层负载均衡常用的几种调度算法和适用的业务场景 1.轮询(默认

Linux架构之Nginx 七层负载均衡

第50章 Nginx七层负载均衡 一.Nginx负载均衡基本概述 1)为什么要使用负载均衡 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷.使用多台Web服务器组成集群,前端使用Nginx负载均衡,将请求分散地打到后端服务器集群中,实现负载的分发.可以大大提升系统的吞吐率.请求性能.高容灾能力. 往往我们接触的最多的是SLB(Server Load Balance)负载均衡,实现最多的也是SLB,那么SLB它的调度节点和服务节点通常是在一个地域里面.它在这个小的逻辑

四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器.四层负载均衡单纯的提供了终端到终端的可靠连接,并将请求转发至后端,连接至始至终都是同一个.LVS就是很典型的四层负载均衡. 2.七层负载均衡工作在OSI模型的第七层应用层,所以七层负载

[转] 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

一.四层与七层负载均衡在原理上的区别 1.图示 2.概述 四层负载均衡工作在 OSI 模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器.四层负载均衡单纯的提供了终端到终端的可靠连接,并将请求转发至后端,连接至始至终都是同一个.LVS 就是很典型的四层负载均衡. 七层负载均衡工作在 OSI 模型的第七层,即应用层,所以七层负载均衡可以基于请求的应用层信息进行负载均衡,例如根