nginx反向代理及负载均衡

node1192.168.136.55Nginx主负载均衡器
node3192.168.136.57Web01服务器
node4192.168.136.58Web02服务器
node5192.168.135.131客户端(测试)

 nginx反向代理

1. 安装nginx

三台机器都安装nginx

yum install nginx -y

2. 配置用于测试的Web服务(以下操作在两台web服务器)。 配置虚拟主机

[root@node3 conf.d]# mkdir -p /usr/share/nginx/html/{www,bbs}/logs 
[root@node3 ~]# cd /etc/nginx/conf.d/
[root@node3 conf.d]# vim vhost.conf
server {
  listen 80;
  server_name bbs.yunjisuan.com;
  location / {
      root /usr/share/nginx/html/bbs;
      index index.html index.htm;
  }
        access_log /usr/share/nginx/html/bbs/logs/access_bbs.log main;
}
server {
    listen 80;
    server_name www.yunjisuan.com;
    location / {
        root /usr/share/nginx/html/www;
        index index.html index.htm;
    }
        access_log /usr/share/nginx/html/www/logs/access_www.log main;
}
# nginx -t 测语法
# systemctl start nginx

node4 一样配置

3. 配置用于测试的Web服务 在两台web服务器上操作。 准备测试页面

echo "`hostname -I `www" > /usr/share/nginx/html/www/index.html
echo "`hostname -I `bbs" > /usr/share/nginx/html/bbs/index.html

 客户端测试:

# vi + /etc/hosts
192.168.136.57    bbs.yunjisuan.com www.yunjisuan.com
192.168.136.58    bbs.yunjisuan.com www.yunjisuan.com
[root@node5 ~]# curl www.yunjisuan.com
192.168.136.57 www
[root@node5 ~]# curl bbs.yunjisuan.com
192.168.136.57 bbs
#或者
[root@node5 ~]# curl -H host:bbs.yunjisuan.com 192.168.136.57
192.168.136.57 bbs
[root@node5 ~]# curl -H host:www.yunjisuan.com 192.168.136.57
192.168.136.57 www

 nginx负载均衡

实现 Nginx 负载均衡的组件说明

Nginx http 功能模块模块说明
ngx_http_proxy_moduleproxy 代理模块,用于把请求后拋给服务器节点或 upstream 服 务器池
ngx_http_upstream_module负载均衡模块, 可以实现网站的负载均衡功能及节点的健康检査

配置简单的负载均衡 以下操作在node1

# cd /etc/nginx/conf.d/
# vim vhost.conf
upstream wwwPools {
  server 192.168.136.57;
  server 192.168.136.58;
}

server {
  listen 80;
  server_name www.yunjisuan.com;

  location / {
    proxy_pass http://wwwPools;
    proxy_set_header Host $host;   # 依据host字段信息,识别代理的是哪个虚拟主机
    proxy_set_header X-Forwarded-For $remote_addr;  # 显示客户端的IP地址
  }
}


server {
  listen 80;
  server_name bbs.yunjisuan.com;

  location / {
   proxy_pass http://wwwPools;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $remote_addr;
  }
}

客户端:  (改成反向代理的地址)

# vim /etc/hosts
192.168.136.55    bbs.yunjisuan.com www.yunjisuan.com
[root@node5 ~]# for ((i=1;i<=4;i++)); do curl http://bbs.yunjisuan.com;done
192.168.136.58  bbs
192.168.136.57  bbs
192.168.136.58  bbs
192.168.136.57  bbs

如果web服务器是apache

# vim vhost.conf
<VirtualHost *:80>
        ServerName bbs.yunjisuan.com
        DocumentRoot "/var/www/html/bbs/"

        CustomLog "/var/www/html/bbs/logs/access_log" combined
</VirtualHost>

<VirtualHost *:80>
        ServerName www.yunjisuan.com
        DocumentRoot "/var/www/html/www/"

        CustomLog "/var/www/html/www/logs/access_log" combined
</VirtualHost>
# cp /usr/share/nginx/html/www/index.html /var/www/html/www
# cp /usr/share/nginx/html/bbs/index.html /var/www/html/bbs

修改配置文件 vim /etc/httpd/conf/httpd.conf

LogFormat "%h %{X-FORWARDED-FOR}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

如果是tomcat

改成 

pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i" resolveHosts="false"

修改为IP HASH算法

始终只由一台服务器提高 

添加server备份  

当前面都down了 启动backup

注意:backup不能和ip_hash同时开启  

想完全不启用其中的一台server

1、backup所有RS都不能提高服务时才起作用

2、backup 不能和ip_hash算法一起使用

3、down 通常用于RS维护时,不参与调度

4、ip_hash 会话保持

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561067.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ 协程 学习笔记

协程的优势就是比线程切换的时间少很多&#xff0c;协程的切换时间是纳秒&#xff0c;而进行切换的时间是微秒 单线程用协程可以轻松的处理并发任务 co_yield和co_await可以将协程暂停下来 resume又把协程激活 如果c函数里有co_await、co_return、co_yield就会自动判定为协程…

牛客-小乐乐与欧几里得

目录 题目 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 示例2 解题 题目 描述 小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数&#xff0c;但是他竟然不会求两个正整数的最大公约数与最小公倍数之和&#xff0c;请你帮助他解决这个问题。 …

计算机网络 -- 多人聊天室

一 程序介绍和核心功能 这是基于 UDP 协议实现的一个网络程序&#xff0c;主要功能是 构建一个多人聊天室&#xff0c;当某个用户发送消息时&#xff0c;其他用户可以立即收到&#xff0c;形成一个群聊。 这个程序由一台服务器和n个客户端组成&#xff0c;服务器扮演了一个接受…

【汇编语言】汇编语言程序

【汇编语言】汇编语言程序 文章目录 【汇编语言】汇编语言程序前言一、用汇编语言写的源程序汇编语言编写程序的工作过程程序中的三种伪指令源程序编译链接后变为机器码汇编程序的结构如何写出一个程序来程序中可能的错误 二、由源程序到程序运行由源程序到执行可执行文件的过程…

区间图着色问题:贪心算法设计及实现

区间图着色问题&#xff1a;贪心算法设计及实现 1. 问题定义2. 贪心算法设计2.1 活动排序2.2 分配教室2.3 算法终止 3. 伪代码4. C语言实现5. 算法分析6. 结论7. 参考文献 在本文中&#xff0c;我们将探讨如何使用贪心算法解决一个特定的资源分配问题&#xff0c;即区间图着色问…

【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程

专栏的老读者们都知道&#xff0c;以前的文章以使用MATLAB的为多。 不过后续陆续开始展开深度学习算法的应用&#xff0c;就会逐渐引入Python语言了&#xff08;当然MATLAB的代码也会同步更新&#xff09;&#xff0c;这是由于在深度学习领域&#xff0c;Python应用更为广泛。…

Matlab|【复现】主动配电网故障定位方法研究

目录 1 主要内容 算例模型 期望故障电流状态函数 评价函数&#xff08;膨胀率函数&#xff09; 算例验证方法 详实的文档说明 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《基于改进多元宇宙算法的主动配电网故障定位方法研究》_郑聪&#xff0c;建…

在ELF 1开发环境中使用Qt Creator进行远程调试

Qt Creator是一款跨平台集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要适用于支持Qt框架的各类应用程序开发。其内置的远程调试机制使得开发者能够在本地开发环境中对部署在远程设备上的代码进行调试&#xff0c;无需直接对远程设备进行操作。Qt Creator会通过网络连…

2.Vue简介

Vue简介 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;V…

在 Linux 中删除文件和文件夹

目录 ⛳️推荐 前言 删除文件 &#x1f3cb;️练习文件删除 小心删除 删除目录 &#x1f3cb;️练习文件夹删除 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到…

VSCode搭建内核源码阅读开发环境

0. 参考链接 使用VSCode进行linux内核代码阅读和开发_vscode阅读linux内核-CSDN博客 1. 搭建Linux内核源码阅读环境 现状&#xff0c;Linux内核源码比较庞大文件非常多&#xff0c;其中又包含的众多的宏定义开关配置选项&#xff0c;这使得阅读内核源代码称为一件头疼的事。 …

电脑工作者缓解眼部疲劳问题的工具分享

背景 作为以电脑为主要工作工具的人群&#xff0c;特别是开发人员&#xff0c;我们每天都需要长时间紧盯着屏幕&#xff0c;进行代码编写、程序调试、资料查询等工作。这种持续的工作模式无疑给我们的眼睛带来了不小的负担。一天下来&#xff0c;我们常常会感到眼睛干涩、疲劳…

[笔试强训day02]

文章目录 BC64 牛牛的快递DP4 最小花费爬楼梯[编程题]数组中两个字符串的最小距离 BC64 牛牛的快递 BC64 牛牛的快递 #include<iostream> #include<cmath> using namespace std;double a; char b;int main() {cin>>a>>b;int ans0;if(a<1.0){ans20;…

Go程序设计语言 学习笔记 第十三章 低级编程

Go的设计保证了一系列安全性&#xff0c;限制了Go程序可能出现问题的方式。在编译期间&#xff0c;类型检查会检测到大多数试图将操作应用于不适合其类型的值的尝试&#xff0c;例如&#xff0c;从一个字符串中减去另一个字符串。严格的类型转换规则阻止了直接访问内置类型&…

数字接龙(蓝桥杯)

文章目录 数字接龙【问题描述】解题思路DFS 数字接龙 【问题描述】 小蓝最近迷上了一款名为《数字接龙》的迷宫游戏&#xff0c;游戏在一个大小为N N 的格子棋盘上展开&#xff0c;其中每一个格子处都有着一个 0 . . . K − 1 之间的整数。游戏规则如下&#xff1a; 从左上…

【图解计算机网络】从浏览器地址输入到网页显示的整个过程

从浏览器地址输入到网页显示的整个过程 整体流程DHCPhttp协议报文组装DNSTCP协议封装与TCP三次握手IP协议封装与路由表MAC地址与ARP协议交换机路由器 整体流程 从往浏览器输入一个地址到网页的显示&#xff0c;要经过很长的一个流程&#xff0c;中间涉及到计算机网络的许多知识…

力扣-LCP 02.分式化简

题解&#xff1a; class Solution:def fraction(self, cont: List[int]) -> List[int]:# 初始化分子和分母为 0 和 1n, m 0, 1# 从最后一个元素开始遍历 cont 列表for a in cont[::-1]:# 更新分子和分母&#xff0c;分别为 m 和 (m * a n)n, m m, (m * a n)# 返回最终的…

VOJ 等边三角形 题解 DFS

等边三角形 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; int n, flag 0, sum 0, tag; int length[20]; // 木棍长度 int group[3] {0}; // 三条边的当前边长 void dfs(int i, int index) {group[index] length[i];if (group[1] &g…

2024蓝桥杯嵌入式模板代码详解

文章目录 一、STM32CubeMx配置二、LED模板代码三、LCD模板代码 一、STM32CubeMx配置 打开STM32CubeMx&#xff0c;选择【File】->【New Project】&#xff0c;进入芯片选择界面&#xff0c;搜索到蓝桥杯官方的芯片型号&#xff0c;并点击收藏&#xff0c;下次直接点击收藏就…

React【Day4】

路由快速上手 1. 什么是前端路由 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候&#xff0c;path 对应的组件会在页面中进行渲染 2. 创建路由开发环境 # 使用CRA创建项目 npm create-react-app react-router-pro# 安装最新的ReactRouter包 …