8月12日上课内容 综合配置详解 四层+七层代理

news2024/12/23 11:03:45

后续内容概述:

Ivs集群:
keepalive:vip实现代理高可用 NAT VPN DR (DR最常用)

数据库:增制改查  备份 高可用 主从复制 读写分离

DBA 市场量小,从业者不多,工资一般般。

中间件: redis.*
分布式存储: ELK日志分析。kafka消息队列

监控zabbix


docker:容器化部罢服务 微服务。
ansibles:自动化运维,比shell好用 playbook

kys:面试占60%,重要,了解工作原理,要能搭起来

上述这些的概念,都必须会,服务要重点掌握

还得会排错,看日志

控制:开 关 重启 /var/log/messages
nginx logs access.log 访问日志
error.log 访问报错日志。
tomcat logs catlina.out

回归正题:

配置

四层转发流量+七层后端代理
环境:
192.168.233.61 nginx四层代理
192.168.233.62 nginx七层代理
192.168.233.63 nginx七层代理
192.168.233.71 tomcat1多实例
192.168.233.72 tomcat2单实例

systemctl stop firewalld
setenforce 0

192.1682.233.61 nginx四层代理:
vim /usr/local/nginx/conf/nginx.conf

pid /usr/local/nginx/run/nginx.pid;


events {
    worker_connections  1024;
}

stream {
   upstream test {
       server 192.168.233.62:80;
       server 192.168.233.63:80;


  }
  server {

       listen 8080;
       proxy_pass test;
 }

}

nginx七层代理62和63:
    upstream ky30 {
       server 192.168.233.71:8080 weight=1;
       server 192.168.233.71:8081 weight=1;
       server 192.168.233.72:8080 weight=1;
    }
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        location ~ .*\.jsp$ {
           proxy_pass http://ky30; #配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理
           
           proxy_set_header HOST $host; #设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),
           默认HOST的值为proxy_pass指令设置的主机名。
           
           proxy_set_header X-Real-IP $remote_addr;  #把$remote_addr赋值给X-Real-IP,来获取源IP
           
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
           #在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
           
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
            root /usr/local/nginx/html;
            expires 10d;
        }
配置相同

192.168.233.71 tomcat1多实例:

cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2

#配置多实例tomcat
vim /etc/profile.d/tomcat.sh
#tomcat1的全局变量设置
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
 
#tomcat2的全局变量设置
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
 
#加载设置好的全局变量
source /etc/profile.d/tomcat.sh

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">        #22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"        #69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />    #116行,修改Connector port AJP/1.3,
默认为8009 -> 修改为8010

修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh 
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat2/bin/startup.sh 
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2


vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

配置tomcat01的测试页面

 
mkdir /usr/local/tomcat/tomcat1/webapps/test 
 
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>tomcat01</title>   
</head>
<body>
<% out.println("tomcat01 running");%>
</body>
</html>

步骤详解:

原理图:

先在撰写栏关闭防火墙和安全机制(对所有机器进行相同操作)

 

先从代理服务器开始

用四层做代理:

 把listen80改一下

 或者把下面的80改为81

 

两个,一个是我们指定的80,一个是http模块里面的81,这样访问代理服务器就能使用默认端口80访问了

配置nginx2和nginx3既作为静态页面也作为七层代理转发动态请求

nginx2

七层代理要到http模块当中做

后端转发请求,要配置location 

nginx3同样需要配置

同样的在http模块里面配置

 

tomcat作为后端服务器,配置一下页面和hosts即可

 一样,删除原来的host添加新的host

 到bin目录下重启服务

测试一下能否正常访问

 tomcat2

先看一下能否正常访问

 一样在webapps里创建一个test目录,然后vim index.jsp

 

cd到conf目录下,vim server.xml

删除原来的host,添加新host

再到bin目录下重启一下

 访问看一下

后端配置完毕,配置前端页面

nginx2

 

 nginx3

一样把图片拖进来

注意:图片名字要和你写的一致

最后修改一下server端口号:

nginx2:

vim nginx.conf

重启一下

同样nginx3也改一下nginx.conf

 

 重启一下

测试一下:

62页面: 

63:

通过代理地址来访问:

 

发现前端不能轮询,设置一下前端的负载均衡,把keepalive timeout暂时调整为0

让他切换(关闭连接保持)就可以看到轮询的效果了

 

然后restart一下

再来访问看一下

这样就实现了轮询,但是要等一段时间,因为图片较大,需要时间加载

 

 

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

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

相关文章

知识分享:如何将一张图片转换成短链接?

今天我们要分享的知识是&#xff1a;如何将一张图片转换成链接&#xff1f; 之前我们有介绍过在二维彩虹将图片转换成二维码的方法&#xff0c;那么其实将图片转成链接也非常简单&#xff01;在做电商运营创建商品详情页面、作家为在线小说设置封面图、产品运营、策划活动等等…

IDC报告深度解读:2023年CRM发展趋势分析

近期&#xff0c;国际数据公司&#xff08;IDC&#xff09;发布了2022年下半年《中国客户关系管理(CRM)SaaS市场跟踪研究报告》&#xff0c;根据报告显示&#xff0c;2022年下半年中国CRM SaaS市场规模达到 11.6 亿美金&#xff0c;同比增长25.4%&#xff0c;CRM占中国整体SaaS…

SpringCloud初识

微服务架构4个核心问题&#xff1a; 这四个问题围绕这我们去学的一些东西&#xff0c;是重点!!! 1.服务很多&#xff0c;客户端该如何访问&#xff1f; 2.这么多服务&#xff0c;服务之间该如何通信&#xff1f; 3.这么多服务&#xff0c;该如何治理&#xff1f; 4.服务挂了…

Python 基础语法 | 常量表达式,变量,注释,输入输出

常量和表达式 我们可以把 Python 当成一个计算器&#xff0c;来进行一些算术运算 print(1 2 - 3) # 0 print(1 2 * 3) # 7 print(1 2 / 3) # 1.6666666666666665注意&#xff1a; print 是一个 Python 内置的 函数可以使用 - * / () 等运算符进行算术运算&#xff0c;先…

postman接口测试工具的常规使用

postman接口测试工具简介与安装 Postman简介&#xff1a; Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 它提供功能强大的Web API&HTTP请求调试。它能够发送任何类型的HTTP请求&#xff08;GET&#xff0c;HEAD&#xff0c;POST&#xff0c;PUT..&a…

04-基础入门-WEB源码拓展

基础入门-WEB源码拓展 1、WEB源码拓展&#xff08;1&#xff09;关于web源码目录结构&#xff08;2&#xff09;关于 WEB 源码脚本类型&#xff08;3&#xff09;关于 WEB 源码应用分类 2、演示案例&#xff08;1&#xff09;asp、php等源码测试&#xff08;2&#xff09;平台识…

我们常说这个pycharm里有陷阱,第三方库导入失败,看这里!

最近有小伙伴遇到了明明安装了 python 第三方库&#xff0c;但是在 pycharm 当中却导入不成功的问题。 ​ 一直以来&#xff0c;也有不少初学 python 的小伙伴&#xff0c;一不小心就跳进了虚拟环境和系统环境的【陷阱】中。 本文就基于此问题&#xff0c;来说说在 pycharm 当…

【leetcode】【图解】617. 合并二叉树

题目 难度&#xff1a;简单 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xf…

基于DBN的伪测量配电网状态估计,DBN的详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的伪测量配电网状态估计 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法伪测量配电网…

leetcode 1171.从链表中删去总和值为零的连续节点

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;从链表中删去总和值为零的连续节点 思路&#xff1a; 在链表的 head 前新增加一个哨兵卫的头结点&#xff0c;方便计算前缀和。遍历链表&#xff0c;依次把每个节点的 val 相加到 sum 中去&#xff0c;再判断 sum 0 依…

网络编程(8.14)TCP并发服务器模型

作业&#xff1a; 1. 多线程中的newfd&#xff0c;能否修改成全局&#xff0c;不行&#xff0c;为什么&#xff1f; 2. 多线程中分支线程的newfd能否不另存&#xff0c;直接用指针间接访问主线程中的newfd,不行&#xff0c;为什么&#xff1f; 多线程并发服务器模型原代码&…

认识Transformer:入门知识

视频链接&#xff1a; https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

排查docker无法启动问题

查看Linux系统操作日志(最后200行就可以排查)&#xff1a; tail -200f /var/log/messages

什么是证券股票交易接口?(股票交易挂单接口)源码开发步骤

证券股票交易接口是一种可以实现证券交易功能的软件接口&#xff0c;它提供了一组用于交易的函数或方法&#xff0c;可以通过调用这些接口来执行买卖股票、查询账户信息、获取市场行情等操作。证券股票交易接口可以连接到证券交易所或证券公司的交易系统&#xff0c;允许用户通…

SpringBoot基于Zookeeper实现分布式锁

文章目录 问题背景前言实现搭建Zookeeper容器引入依赖ZK客户端的配置类ZK客户端的工厂类注入bean构建测试类 问题背景 研究分布式锁&#xff0c;基于ZK实现&#xff0c;需要整合到SpringBoot使用 前言 参考自SpringBoot集成Curator实现Zookeeper基本操作&#xff0c;Zookeeper入…

d3dx9_37.dll如何修复,d3dx9_37.dll丢失的4种解决方法分享

d3dx9_37.dll是DirectX中的一个动态链接库文件&#xff0c;它包含了一些用于游戏和图形应用程序的函数和资源。当你在运行一个需要使用DirectX的程序时&#xff0c;如果系统中缺少d3dx9_37.dll文件或该文件损坏&#xff0c;就会导致程序无法正常运行。 以下是解决d3dx9_37.dll问…

数字孪生如何实现物理世界和数字世界之间的交互?

在当今数字化时代&#xff0c;技术的飞速发展正在引领着各行各业的变革与创新。其中&#xff0c;数字孪生作为一项令人振奋的前沿技术&#xff0c;正在以惊人的方式实现着物理世界与数字世界的无缝交互。它不仅为企业带来了全新的商机&#xff0c;也为科学研究、生产制造等领域…

算法通关村第七关——递归和迭代实现二叉树前中后序遍历

1.递归 1.1 熟悉递归 所有的递归有两个基本特征&#xff1a; 执行时范围不断缩小&#xff0c;这样才能触底反弹。终止判断在调用递归的前面。 写递归的步骤&#xff1a; 从小到大递推。分情况讨论&#xff0c;明确结束条件。组合出完整方法。想验证就从大到小画图推演。 …

Android Ble蓝牙App(四)UI优化和描述符

Ble蓝牙App&#xff08;四&#xff09;UI优化和描述符 前言正文一、UI优化① 主页面提示优化② UUID显示优化③ 设备信息优化 二、描述① 概念② 描述适配器③ 显示描述符 三、源码 前言 上一篇中了解了特性和属性&#xff0c;同时显示设备蓝牙服务下的特性和属性&#xff0c;本…

约数个数(质因子分解)

思路&#xff1a; &#xff08;1&#xff09;由数论基本定理&#xff0c;任何一个正整数x都能写作&#xff0c;其中p1,p2..pk为x的质因子。 &#xff08;2&#xff09;由此可以推断&#xff0c;要求一个数约数的个数&#xff0c;注意到约数就是p1,p2...pk的一种组合&#xff…