nginx四层负载及动静分离

阿里云实验
10.0.0.132 LB
10.0.0.133 web01
10.0.0.134 web02

步骤:
1.安装nginx1.14

获取官网repo文件
yum install -y nginx

2.配置文件,web服务器都是一样的

[[email protected] conf.d]# cat www.conf
server {
    listen 80;
    server_name ali.xiao.com;

    location / {
        root /code/ali;
        index index.html;
    }
}

mkdir -p /code/ali
echo "web01 10.0.0.133" >/code/ali/index.html

3.检测语法,并启动服务

nginx -t
systemctl start nginx

4.配置七层负载均衡
1)创建proxy_params
2)创建负载均衡配置

[[email protected] conf.d]# cat proxy.conf
upstream ali {
    server 10.0.0.133:80;
    server 10.0.0.134:80;
}

server {
    listen 80;
    server_name ali.xiao.com;

    location / {
        proxy_pass http://ali;
        include proxy_params;
    }
}

5.配置四层负载均衡
1)修改主配置文件/etc/nginx/nginx.conf,在http上面添加如下信息

# 添加四层代理
include /etc/nginx/conf.c/*.conf

2) 配置四层负载文件

mkdir -p /etc/nginx/conf.c
vim /etc/nginx/conf.c/proxy.conf
stream {
    upstream ssh_web01{
        server 10.0.0.133:22;
    }
    upstream ssh_web02{
        server 10.0.0.134:22;
    }

    server {
        listen 5555;
        proxy_pass ssh_web01;
    }

    server {
        listen 6666;
        proxy_pass ssh_web02;
    }
}

Nginx负载均衡TCP实践

配置nginx4层负载均衡实现如下需求
1.通过访问负载均衡的5555端口,实际是后端web01的22端口提供服务的
2.通过访问负载均衡的6666端口,实际是mysql的3306端口在提供服务

四层负载均衡 基于MySQL

1).实验环境

lb01   172.16.1.5    10.0.0.5
web01  172.16.1.7
db01   172.16.1.71

2).创建四层负载均衡配置目录

mkdir /etc/nginx/conf.c -p

3).修改lb01的主配置文件
vim /etc/nginx/nginx.conf,在http上面添加如下信息

# 添加四层代理
include /etc/nginx/conf.c/*.conf

4).创建四层负载均衡配置文件

[[email protected] conf.c]# vim stream.conf
stream {
    #定义虚拟资源池
    upstream ssh {
        server 172.16.1.7:22;
    }

    upstream mysql {
        server 172.16.1.71:3306;
    }
    #调用虚拟资源池
    server {
        listen 5555;
        proxy_connect_timeout 1s;
        proxy_timeout 300s;
        proxy_pass ssh;
    }

    server {
        listen 6666;
        proxy_connect_timeout 1s;
        proxy_timeout 300s;
        proxy_pass mysql;
    }
}

5).语法检查,并重启服务

nginx -t
systemctl reload nginx

Nginx动静分离
动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时。
好吃:动静分离后,即使动态服务不可用,但静态资源不受影响

1.环境准备

系统         服务      服务           地址
centso7.7   负载均衡  Nginx Proxy    10.0.1.5
centso7.7   静态资源  Nginx Static   10.0.1.7
centso7.7   动态资源  Nginx Server   10.0.1.8

2.在10.0.1.7服务器上配置静态资源

[[email protected] conf.d]# cat df.conf
server {
    listen 80;
    server_name ds.xiao.com;
    root /soft/code;
    index index.html;

    location ~* .*\.(jpg|png|gif)$ {
        root /soft/code/images;
    }
}

# 准备,目录已经静态相关图片
mkdir -p /soft/code/images
wget -O /soft/code/images/nginx.png http://nginx.org/nginx.png
systemctl reload nginx

3.在10.0.1.8服务器上配置动态资源

yum install -y tomcat
systemctl start tomcat
mkdir /usr/share/tomcat/webapps/ROOT
cd /usr/share/tomcat/webapps/ROOT/
[[email protected] ROOT]# cat java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE> jsp </TITLE>
    </HEAD>
    <BODY>
        <%
        Random rand = new Random();
        out.println("<h1>Random number:</h1>");
        out.println(rand.nextInt(99)+100);
        %>
    </BODY>
</HTML>

4.在负载均衡10.0.1.5上配置调度,实现访问jsp和png

[[email protected] conf.d]# cat ds.conf
upstream static {
    server 172.16.1.7:80;
}

upstream java {
    server 172.16.1.8:8080;
}

server {
    listen 80;
    server_name ds.xiao.com;

    location / {
        root /code/soft;
        index index.html;
    }

    location ~ .*\.(jpg|png|gif)$ {
        proxy_pass http://static;
        include proxy_params;
    }

    location ~ .*\.jsp$ {
        proxy_pass http://java;
        include proxy_params;
    }
}

5.通过负载测试访问静态资源
6.通过负载测试访问动态资源
7.在负载均衡10.0.1.5整合动态和静态资源的html文件

mkdir -p /code/soft
[[email protected] conf.d]# cat /code/soft/index.html
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>测试ajax和跨域访问</title>
    <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
    $.ajax({
    type:"GET",
    url:"http://ds.xiao.com/java_test.jsp",
    success: function(data) {
        $("#get_data").html(data)
    },
    error: function() {
        alert("fail!!,请刷新重试");

    }
    });
});
</script>
    <body>
        <h1>测试动静分离</>
        <img src="http://ds.xiao.com/nginx.png">
        <div id="get_data"></data>
    </body>
</html>

8.测试动态和静态资源是否能正常加载在一个html文件中
9.当使用systemctl stop nginx停止Nginx后,会发现静态内容无法访问,动态内容依旧运行正常
10.当使用systemctl stop tomcat停止tomcat后,静态内容依旧能正常访问,动态内容将不会被请求到

原文地址:https://www.cnblogs.com/xmtxh/p/12343853.html

时间: 2024-10-12 09:03:36

nginx四层负载及动静分离的相关文章

nginx+tomcat负载均衡+动静分离

1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_processes 8; pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 102400; events { use epoll; worker_connections 102400; } http { include mime.types; default

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+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx

HAproxy负载均衡动静分离实现及配置详解

 HAproxy负载均衡动静分离实现及配置详解 HAproxy的介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程

nginx四层负载均衡配置

nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 没安装则进行安装 操作步骤如下 至此 已保证在没中断服务的情况下成功添加stream模块 步骤二 配置 mysql负载均衡案例 修改Nginx配置文件nginx.conf 内容如下图 测试步骤如下 后端Mysql需做好读写分离 创建好相应权限的用户 到客户端连接Nginx创建wuguiyunwei

Nginx 和 IIS 实现动静分离【转载】

前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:<nginx 和 IIS 实现负载均衡>,然后也就顺便研究了Nginx + IIS 实现动静分离.所以,一起总结出来,与大家共同探讨. 动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求.后台应用服务器只负责动态数据请求. 优势:分担负载,减轻web服务器的压力,适用于大负载. 静态资源放置cdn,同时还可以

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepalived实现的HA(High Available).为什么要实现高可用呢?曾经在搭建的时候仅仅用了一台Nginxserver,这种话假设Nginxserver宕机了,那么整个站点就会挂掉.所以要实现Nginx的高可用,一台挂掉还会有还有一台顶上去.从而保证站点能够持续的提供服务. 关于负载均衡和动静

nginx+apache实现负载均衡+动静分离配置(编译安装)

一.编译安装nginx cd /usr/local/src wget http://nginx.org/download/nginx-1.6.3.tar.gz tar -zxvf nginx-1.6.3.tar.gz cd nginx-1.6.3 ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_image_filter_module --with-http_sub_m