nginx反向代理及负载均衡

news2024/9/21 18:43:41
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 会话保持

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++进阶:搜索树

目录 1. 二叉搜索树1.1 二叉搜索树的结构1.2 二叉搜索树的接口及其优点与不足1.3 二叉搜索树自实现1.3.1 二叉树结点结构1.3.2 查找1.3.3 插入1.3.4 删除1.3.5 中序遍历 2. 二叉树进阶相关练习2.1 根据二叉树创建字符串2.2 二叉树的层序遍历I2.3 二叉树层序遍历II2.4 二叉树最近…

ChatGPT研究论文提示词集合1-【主题选择与问题研究、文献综述】

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 目录 1.主题选择与问题定义 2.文献综述 3.书籍介绍 AIPaperPass智能论文写作平台 近期小编按照学术论文的流程&#xff0c;精心准备一套学术研究各个流程的提示词集合。总共14个步骤…

AI翻译英语PDF文档的3种方法

短的文章&#xff0c;直接丢进kimichat、ChatGPT里面很快就可以翻译完成&#xff0c;而且效果很佳。但是&#xff0c;很长的PDF文档整篇需要翻译&#xff0c;怎么办呢&#xff1f; ●腾讯交互翻译TranSmart https://transmart.qq.com/ 软件下载后&#xff0c;点击左边的文件翻…

天才简史——Sylvain Calinon

一、研究方向 learning from demonstration&#xff08;LfD&#xff09;领域的专家&#xff0c;机器人红宝书&#xff08;Springer handbook of robotics&#xff09;Robot programming by demonstration章节的合作者。主要研究兴趣包括&#xff1a; 机器人学习、最优控制、几…

从零自制docker-11-【pivotRoot切换实现文件系统隔离】

文章目录 busyboxdocker run -d busybox topcontainerId(docker ps --filter "ancestorbusybox:latest"|grep -v IMAGE|awk {print $1})docker export -o busybox.tar $containerId or sudo docker export 09bbf421d93f > ./busybox.tar tar -xvf busybox.tar -C …

Python | Leetcode Python题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; class Solution:def firstMissingPositive(self, nums: List[int]) -> int:n len(nums)for i in range(n):while 1 < nums[i] < n and nums[nums[i] - 1] ! nums[i]:nums[nums[i] - 1], nums[i] nums[i], nums[nums[i] - 1]for …

域名信息查询同款WHOIS源码

域名查询一般是指查询域名的whois注册信息&#xff0c;域名WHOIS是当前域名系统中不可或缺的一项信息服务。在使用域名进行Internet冲浪时&#xff0c;很多用户希望进一步了解域名、名字服务器详细信息&#xff0c;这就会用到WHOIS。 域名信息查询同款WHOIS源码

在Postgres中,如何有效地管理大型数据库的大小和增长

文章目录 一、定期清理和维护1. VACUUM和ANALYZE2. 删除旧数据和归档 二、分区表三、压缩数据四、配置优化1. 调整维护工作负载2. 监控和日志 五、使用外部存储和扩展1. 外部表和FDW2. 扩展和插件 六、定期备份和恢复测试结论 管理大型数据库的大小和增长是数据库管理员&#x…

EA包图上嵌套的包位置不对

Extreme 2024-4-11 11:36 我从工具栏把一个包拖在另一个包里面&#xff0c;可是项目树上两个包的位置并列&#xff0c;拖了几次结果都一样。我的目的是做一个多层级的包图&#xff0c;是不是&#xff08;EA&#xff09;不能在图上做&#xff1f; UMLChina潘加宇 确实是这样&a…

m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法和详细的解析。 题干 m个人的成绩…

强固型工业电脑在轮胎成型机设备行业应用

轮胎成型机设备行业应用 项目背景 我国是一个轮胎生产与出口大国&#xff0c;在轮胎的生产过程中&#xff0c;成型工序是生产的关键工序&#xff0c;将半成品的部件按照轮胎的技术规范在成型机上组装成胎胚&#xff0c;工艺较为复杂&#xff0c;对设备加工和定位精度要求较高。…

【Linux学习】gcc与g++的使用与程序翻译的过程

文章目录 修改sudo用户名单gcc与g指令gcc用法g用法 程序翻译的过程函数库动态库与静态库什么是动静态库&#xff1f;动静态库的优缺点ldd指令 这里补充一个前面遗漏的知识&#xff1a; 修改sudo用户名单 必须使用root超级用户进行修改&#xff0c;普通用户是不能访问修改。 …

Spring 事务实现方式:

Spring 事务实现方式&#xff1a; Spring并不直接支持事务&#xff0c;只有当数据库支持事务的时候&#xff0c;Spring才支持事务&#xff0c;Spring只不过简化了开发人员实现事务的开发步骤 Spring事务的实现方式有两种&#xff1a; 一、基于申明式事务&#xff1a; Service…

CCF-CSP真题《202312-2 因子化简》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 试题编号&#xff1a;202312-2试题名称&#xff1a;因子化简时间限制&#xff1a;2.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 题目背景 质数&#xff08;又称“素数”&#xff09;是指…

安装AngusTester节点代理

一、介绍 节点代理程序(AngusAgent)提供三方面作用&#xff1a; 通过启动"执行器(AngusRunner)"来执行脚本任务。在代理节点上运行和管理Mock服务。收集、监控和报告关于节点的各种指标和性能数据&#xff0c;该数据用于在稳定性测试中可分析节点资源使用率。 二、…

Java高阶私房菜:高并发之线程池底层原理学习

以往我们需要获取外部资源&#xff08;数据源、Http请求等&#xff09;时&#xff0c;需要对目标源创建链接对象&#xff0c;三次握手成功后方可正常使用&#xff0c;为避免持续的资源占用和可能的内存泄漏&#xff0c;还需要调用目标对象close方法释放资源销毁对象。这一建一销…

【PCL】教程conditional_euclidean_clustering 对输入的点云数据进行条件欧式聚类分析...

[done, 3349.09 ms : 19553780 points] Available dimensions: x y z intensity 源点云 Statues_4.pcd 不同条件函数output.pcd 【按5切换到强度通道可视化】 终端输出&#xff1a; Loading... >> Done: 1200.46 ms, 19553780 points Downsampling... >> Done: 411…

ssm064农产品仓库管理系统系统+jsp

农产品仓库管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本农产品仓库管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者…

Llama 3“智商”测试:英文提示表现亮眼,中文不完美但差强人意!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

C++从入门到精通——C++动态内存管理

C动态内存管理 前言一、C/C内存分布分类1分类2题目选择题sizeof 和 strlen 区别示例sizeofstrlen 二、C语言中动态内存管理方式malloc/calloc/realloc/free示例例题malloc/calloc/realloc的区别malloc的实现原理 三、C内存管理方式new/delete操作内置类型new和delete操作自定义…