当前位置: 首页 > news >正文

Nginx七层负载均衡之动静分离

思路:

        servera:负载均衡服务器
        serverb:静态服务器
        serverc:动态服务器
        serverd:默认服务器

servera(192.168.233.132):

# 安装 Nginx 服务器
yum install nginx -y#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0# 切换到 Nginx 配置文件目录
cd /etc/nginx/conf.d/# 使用 vim 编辑器打开 proxy.conf 文件进行编辑
vim proxy.conf# 定义上传服务器的 upstream 块
upstream uploadPools {server 192.168.233.140; # 后端服务器的IP地址
}# 定义静态资源服务器的 upstream 块
upstream staticPools {server 192.168.233.144; # 后端服务器的IP地址
}# 定义主要应用服务器的 upstream 块
upstream wwwPools {server 192.168.233.141; # 后端服务器的IP地址
}server {listen 80; # 监听80端口server_name www.bbs.com; # 将请求转发到此服务器块中的指定域名# 处理静态资源请求location /static/ {proxy_pass http://staticPools; # 将请求转发到静态资源服务器proxy_set_header host $host; # 传递请求头信息proxy_set_header X-Forwarded-For $remote_addr; # 传递 X-Forwarded-For 头信息}# 处理动态资源请求location /upload/ {proxy_pass http://uploadPools; # 将请求转发到上传服务器proxy_set_header host $host; # 传递请求头信息proxy_set_header X-Forwarded-For $remote_addr; # 传递 X-Forwarded-For 头信息}# 默认处理所有其他请求location / {proxy_pass http://wwwPools; # 将请求转发到主要应用服务器proxy_set_header host $host; # 传递请求头信息proxy_set_header X-Forwarded-For $remote_addr; # 传递 X-Forwarded-For 头信息}
}

serverb(192.168.233.144):

# 安装 Nginx 服务器
yum install nginx -y#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0# 切换到 Nginx 配置文件目录
cd /etc/nginx# 使用 vim 编辑器打开 nginx.conf 文件进行编辑,并注释掉 listen 和 root 配置项
vi nginx.conf
# listen       80;
# listen       [::]:80;
# root         /usr/share/nginx/html;# 创建一个静态网页目录,并在其中创建一个简单的测试页面
mkdir -p /data/web
cd /data/web
mkdir static
echo static web test page > static/index.html# 切换到 Nginx 配置文件目录,并创建一个新的虚拟主机配置文件 www.conf,并添加配置项
cd /etc/nginx/conf.d/
vim www.conf
# 添加以下内容:
# server {
#         listen 80;
#         server_name www.bbs.com;
#         root /data/web/;
#         location / {
#                 index index.html;
#         }
# }# 重启 Nginx 服务器使配置生效
systemctl restart nginx

serverc(192.168.233.140):

# 安装 Nginx 服务器
yum install nginx -y#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0# 切换到 Nginx 配置文件目录
cd /etc/nginx# 使用 vim 编辑器打开 nginx.conf 文件进行编辑,并注释掉 listen 和 root 配置项
vi nginx.conf
# listen       80;
# listen       [::]:80;
# root         /usr/share/nginx/html;# 创建一个新的静态网页目录,并在其中创建一个简单的测试页面
mkdir -p /data/web
cd /data/web
mkdir upload
echo upload web test page > upload/index.html# 切换到 Nginx 配置文件目录,并创建一个新的虚拟主机配置文件 www.conf,并添加配置项
cd /etc/nginx/conf.d/
vim www.conf
# 添加以下内容:
# server {
#         listen 80;
#         server_name www.bbs.com;
#         root /data/web/upload;
#         location / {
#                 index index.html;
#         }
# }# 重启 Nginx 服务器使配置生效
systemctl restart nginx

serverd(192.168.233.141):

# 安装 Nginx 服务器
yum install nginx -y#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0# 切换到 Nginx 配置文件目录
cd /etc/nginx# 使用 vim 编辑器打开 nginx.conf 文件进行编辑,并注释掉 listen 和 root 配置项
vi nginx.conf
# listen       80;
# listen       [::]:80;
# root         /usr/share/nginx/html;# 创建一个新的静态网页目录,并在其中创建一个简单的测试页面
mkdir -p /data/web
echo "web test page." > /data/web/index.html# 使用 vim 编辑器打开 Nginx 的虚拟主机配置文件 www.conf,并添加配置项
vi /etc/nginx/conf.d/www.conf
# 添加以下内容:
# server {
#         listen 80;
#         server_name www.bbs.com;
#         root /data/web/;
#         location / {
#                 index index.html;
#         }
# }# 重启 Nginx 服务器使配置生效
systemctl restart nginx# 使用 vim 编辑器打开 /etc/hosts 文件,并添加 IP 地址和域名的映射关系
vi /etc/hosts
# 添加以下内容:
# 192.168.233.132 www.bbs.com www.blog.com

测试:

# 使用 curl 命令访问 Nginx 服务器的默认主页
curl http://192.168.233.132# 使用 curl 命令访问静态文件目录,并显示目录内容
curl http://192.168.233.132/static/# 使用 curl 命令访问动态文件目录,并显示目录内容
curl http://192.168.233.132/upload/


 

相关文章:

Nginx七层负载均衡之动静分离

思路: servera:负载均衡服务器 serverb:静态服务器 serverc:动态服务器 serverd:默认服务器 servera(192.168.233.132): # 安装 Nginx 服务器 yum install nginx -y#关闭防火墙和selinux systemctl stop firewalld setenforce 0# 切换到 Nginx 配置文…...

305_C++_定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体

头文件:定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体 #ifndef TIMERPOOL_H #define TIMERPOOL_H #include "rsglobal.h" #include "taskqueue.h" #incl...

大整数因数分解工具——yafu

一、安装 yafu--下载链接 二、配置环境变量,直接从cmd打开 1.找到yafu-x64.exe 所在的文件路径 2.点击设置——系统——系统信息——高级系统设置——环境变量——点击PATH(上下都可以)——新建 添加yafu-x64.exe 所在路径——点击确定 3…...

非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解

前言: 在我们的日常开发中,关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了。那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗?下面我们来详细的介绍一下。 关系…...

7.Cloud-GateWay

0.概述 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.入门配置 1.1 POM <!--新增gateway--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta…...

【Linux】Framebuffer 应用

# 前置知识 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Frame 是帧的意思&#xff0c; buffer 是缓冲的意思&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。 Framebuffer 中保存着一帧图像的每一个像素颜色值&…...

markdown绘制流程图相关代码片段记录

有时候会使用typora来绘制一些流程图&#xff0c;进行编码之类的工作&#xff0c;在网络搜集了一些笔记&#xff0c;做个记录&#xff0c;方便日后进行复习&#xff0c;相关的记录如下&#xff1a; 每次作图时&#xff0c;代码以「graph <布局方向>」开头&#xff0c;如…...

云计算基础-计算虚拟化-CPU虚拟化

CPU指令系统 在CPU的工作原理中&#xff0c;CPU有不同的指令集&#xff0c;如下图&#xff0c;CPU有4各指令集&#xff1a;Ring0-3&#xff0c;指令集是在服务器上运行的所有命令&#xff0c;最终都会在CPU上执行&#xff0c;但是CPU并不是说所有的命令都是一视同仁的&#xf…...

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…...

选择排序和快速排序(1)

目录 选择排序 基本思想 选择排序的实现 图片实现 代码实现 快速排序 基本思想 快速排序的实现 图片实现 代码实现 选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;最大&#xff09;的元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部…...

得物面试:Redis用哈希槽,而不是一致性哈希,为什么?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; Redis为何用哈希槽而不用一致性哈希&#xff1f; 最近…...

matlab发送串口数据,并进行串口数据头的添加,我们来看下pwm解析后并通过串口输出的效果

uintt16位的话会在上面前面加上00&#xff0c;16位的话一定是两个字节&#xff0c;一共16位的数据 如果是unint8的话就不会&#xff0c; 注意这里给的是13&#xff0c;但是现实的00 0D&#xff0c;这是大小端的问题&#xff0c;在matlanb里设置&#xff0c;我们就默认用这个模式…...

二分、快排、堆排与双指针

二分 int Binary_Search(vector<int> A,int key){int nA.size();int low0,highn-1,mid;while(low<high){mid(lowhigh)/2;if(A[mid]key)return mid;else if(A[mid]>key)highmid-1;elselowmid1; }return -1; }折半插入排序 ——找到第一个 ≥ \ge ≥tem的元素 voi…...

微信小程序步数返还的时间戳为什么返回的全是1970?

微信小程序步数返还的时间戳为什么返回的全是1970&#xff1f; 将返回的时间 乘以 1000 再 new Date() 转化就对了 微信返回的是秒S单位的&#xff0c;我们要转化为毫秒ms单位&#xff0c;才能进行格式化日期。 微信给我们下了个坑&#xff0c; 参考&#xff1a; https://d…...

Python函数——函数介绍

一、引言 在Python编程中&#xff0c;函数是构建高效代码的关键。通过创建可重用的代码块&#xff0c;我们可以使程序更加清晰、易读且易于维护。在本文中&#xff0c;我们将深入了解Python函数的基本概念及其特性。 二、Python函数的基本概念 函数是一段具有特定功能的代码块…...

【Linux系统化学习】文件重定向

目录 文件内核对象 文件描述符的分配规则 重定向 重定向的概念 dup2系统调用 输出重定向 追加重定向 输入重定向 stderr解析 重定向到同一个文件中 分离常规输出和错输出 文件内核对象 上篇文章中我们介绍到了操作系统中的文件&#xff0c;操作系统为了方…...

防火墙工作模式详解

防火墙工作模式是指防火墙在网络中的工作方式和策略。常见的防火墙工作模式包括以下几种&#xff1a; 1. 包过滤工作模式&#xff1a;根据事先确定的规则集合&#xff0c;对进出网络的网络包进行过滤和检查。根据规则&#xff0c;防火墙可以允许或阻止特定的网络流量。 2. 代…...

CCF编程能力等级认证GESP—C++6级—20231209

CCF编程能力等级认证GESP—C6级—20231209 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)闯关游戏工作沟通 答案及解析单选题判断题编程题1编程题2 单选题…...

ES6 ~ ES11 学习笔记

课程地址 ES6 let let 不能重复声明变量&#xff08;var 可以&#xff09; let a; let b, c, d; let e 100; let f 521, g "atguigu", h [];let 具有块级作用域&#xff0c;内层变量外层无法访问 let 不存在变量提升&#xff08;运行前收集变量和函数&#…...

001 - Hugo, 创建一个网站

001 - Hugo, 创建一个网站安装hugoWindows系统Macos Hugo博客搭建初始化博客主题安装配置博客各个页面开始创作创建 GitHub Page 仓库本地调试和预览发布内容 教程及鸣谢文字教程视频教程 001 - Hugo, 创建一个网站 这篇文章假设你已经&#xff1a; 了解基本的终端命令行知识&…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...