Nginx(七层)动静分离的负载均衡群集

环境:(全部为公网IP,可以直接和客户端通信)

分发器:192.168.200.101

静态文件服务器:192.168.200.102

192.168.200.103

动态文件服务器:192.168.200.104

192.168.200.105

图片服务器:       192.168.200.106

192.168.200.107

nginx常用的三种模式:

  1. 轮询   默认模式,后端服务器挂了自动踢出
  2. weight   指定权重
  3. ip_hash   每个请求按访问IP的hash结果分配,每个客户端固定访问一个后端服务器,解决session问题

安装nginx:

yum install -y gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel

wget http://nginx.org/download/nginx-1.12.1.tar.gz

tar xzvf nginx-1.12.1.tar.gz

cd nginx-1.12.1/

./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module

make && make install

参数:

--with-http_dav_module   增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法(默认关闭)

--with-http_stub_status_module   获得nginx上次启动以来工作状态

--with-http_addition_module   作为一个输出过滤器,支持不完全缓冲,分部分响应请求

--with-http_sub_module   允许用一些其他文本替换nginx响应中的一些文本

--with-http_flv_module   flv视频支持模块

--with-http_mp4_module   mp4视频支持模块

创建nginx用户

useradd nginx -s /sbin/nologin

配置动静分离

cd /usr/local/nginx/conf/

vim nginx.conf

2 user nginx;

43         location / {

44             root   html;

45             index  index.html index.htm;

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

47                 proxy_pass http://htmlservers;

48             }

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

50                 proxy_pass http://phpservers;

51             }

52                 proxy_pass http://otherservers;

53        }

#定义负载均衡IP

124 upstream htmlservers {

125         server 192.168.200.102:80;

126         server 192.168.200.103:80;

127         }

128 upstream phpservers {

129         server 192.168.200.104:80;

130         server 192.168.200.105:80;

131         }

132 upstream otherservers {

133         server 192.168.200.106:80;

134         server 192.168.200.107:80;

135         }

nginx启动、开机自启

/usr/local/nginx/sbin/nginx

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

后端服务器简单配置:

htmlservers:

yum install -y httpd

htmlserver1:

echo "htmlservers 192.168.200.102" > /var/www/html/index.html

htmlserver2:

echo "htmlservers 192.168.200.103" > /var/www/html/index.html

systemctl start httpd

phpservers:

yum install -y httpd php

vim /etc/httpd/conf/httpd.conf

164 DirectoryIndex index.html index.php

phpserver1:

vim /var/www/html/index.php

<?php

echo "phpservers 192.168.200.104";

phpinfo();

?>

phpserver2:

vim /var/www/html/index.php

<?php

echo "phpservers 192.168.200.105";

phpinfo();

?>

systemctl start httpd

otherservers:

yum install -y httpd

上传两张不同图片到两台otherservers上,名称更改为a.png

systemctl start httpd

测试:

html静态页面测试:

php动态页面测试:

other其他:

缺省情况: 访问http://192.168.200.101/会打开otherservers

原文地址:https://www.cnblogs.com/liang-yao/p/8455029.html

时间: 2024-10-11 11:03:55

Nginx(七层)动静分离的负载均衡群集的相关文章

LVS四层 VS Nginx七层反代(负载均衡)

1.场景: 最近不少朋友聊天谈到面试总是问到LVS四层反代和Nginx七层反代,有点不知所措. 负载均衡可以将用户的请求分发到 web集群的某台机器,反向代理也是实现了这个功能.如果后端是一台服务器就叫反向代理,如果有多台就是负载均衡.反向代理才能实现负载均衡 负载均衡是做反向代理的目的之一. 2.博主则探讨一下四层反代和的七层反代的区别(三层负载均衡不探讨),如有不足,请指出. 3.问到LVS四层.七层反代(负载均衡),则可以通过上面几个方式谈: 3.1)技术原理 3.2)优缺点 3.3)安全

Nginx+Tomcat实现动静分离和负载均衡

一.动静分离 Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面.动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件放在独立的服务器上,独立出来用域名访问,也是目前主流推崇的方案:另外一种方法就是动态跟静态文件混合在一起部署,通过Nginx来分开. 为什么要动静分离? Tomcat是一个比较全面的web容器,对静态网页的处理,应

Nginx七层反向代理和负载均衡

1.介绍 1.1 Nginx不仅是一个出色的web软件,其七层代理和负载均衡也是相当出色.Nginx做前端代理,当用户请求服务时,可以根据url进行判断,然后分配到不同的后台webserver上. 1.2 Nginx的负载均衡实现原理:首先在http模块中配置使用upstream模块定义后台的web server的池子,名为proxy-web,在池子中我们可以添加多台后台webserver,其中状态检查.调度算法都是在池子中配置:然后在serverr模块中定义虚拟主机,但是这个虚拟主机不指定自己

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

nginx反向代理tomacat+keepalived实现动静分离、负载均衡、高可用

本文的动静分离主要是通过nginx+tomcat来实现,其中nginx处理图片.html.JS.CSS等静态文件,tomcat处理jsp.servlet等动态请求 服务器名称                                 系统版本                           预装软件                     IP地址 Nginx服务器                             CentOS 7 最小安装              Nginx

LNMT/LAMT实现动静分离、负载均衡和会话保持

1.本次试验主要是通过nginx代理到tomcat处理动态响应: 2.通过httpd代理到tomcat做动态请求的处理: 3.通过httpd和tomcat实现session会话的绑定: 4.通过httpd和tomcat实现session会话的保持: 5.通过httpd实现tomcat负载均衡效果: 一.LNMT的试验配置 LNMT: 主机 IP haproxy 192.168.0.111    node1.soul.com varnish 192.168.0.112    node2.soul.

varnish的缓存加速,以及动静分离,负载均衡

一个简单的拓扑如上,varnish1 上还同时开了nginx,用来做静态的http,app1和app2 是nginx+fastcgi,这个拓扑主要做的是Discuz!论坛的动静分离,以及app的负载均衡,varnish起到个反向代理和缓存加速的功能. varnish1:192.168.1.151,172.16.0.51 app1:172.16.0.52 app3:172.16.0.54 varnish 简介 varnish的缓存方式: 1.malloc,通过malloc获取内存,简单,速度. 2

Nginx+Tomcat 实现动态分离,负载均衡

什么是动静分离 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器.用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离.这也是反向代理服务器的一个重要的作用. 本文的动静分离主要是通过nginx+tomcat来实现,其中nginx处理图片.html.JS.C

实验:部署实现nginx在http上的动静分离和负载均衡

首先复习一下LB Cluster负载均衡集群 四层: LVS Nginx(stream) Haproxy(mode_tcp) 七层 Http protocol Nginx(http,upstream) Haproxy(mode http) Httpd/ats/perlbal/pound/- 接下来如何实现nginx在http的负载均衡 ngx_stream_proxy_module模块能为http服务做调度,其中stream模块中有 专门的server子命令,不同于其他server,其他serv