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

网站建设 枫子科技/沧州网站建设优化公司

网站建设 枫子科技,沧州网站建设优化公司,wordpress 自定义首页,西安搬家公司电话一、nginx的反向代理 新建一台虚拟机——static-server(静态服务器/前端服务器) wget https://nginx.org/download/nginx-1.26.1.tar.gz #安装nginx包 ls 安装依赖软件 yum -y install gcc gcc-c yum -y install pcre-devel yum -y install openss…

一、nginx的反向代理

新建一台虚拟机——static-server(静态服务器/前端服务器)

wget https://nginx.org/download/nginx-1.26.1.tar.gz      #安装nginx包
ls

安装依赖软件

yum -y install gcc gcc-c++
yum -y install pcre-devel
yum -y install openssl-devel
yum -y install lrzsz

yum -y install tree
 tar -zxvf nginx-1.26.1.tar.gz      #解压nginx安装包
ls
cd nginx-1.26.1
ls
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream      #源码编译
make
make install
useradd -s /bin/nologin -M nginx
不要使用systemctl启动或者脚本启动

/usr/local/nginx/sbin/nginx    #启动nginx

配置属性监控

vim /usr/local/nginx/conf/nginx.conf     #配置文件

  location /status{
           stub_status on;
           access_log off;
         }

/usr/local/nginx/sbin/nginx -s reload   #重启nginx

将static-server做为前端服务器,用于接受和响应客户端,代理另外一台主机

echo "this is java static server" > /usr/local/nginx/html/index.html
/usr/local/nginx/sbin/nginx 
curl localhost
this is java static server
ps -aux|grep nginx

root       1197  0.0  0.1  46128  1156 ?        Ss   10:15   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      1198  0.0  0.2  46580  2140 ?        S    10:15   0:00 nginx: worker process
root       1202  0.0  0.0 112824   984 pts/0    S+   10:16   0:00 grep --color=auto nginx

curl 192.168.1.12

this is java web server

使用static-server代理dunamic-server主机;当用户访问11的时候,11不响应,而是由12响应

location  proxy_pass    协议   域名   端口

使用static-server反向代理dynamic-server的服务器

vim /usr/local/nginx/conf/nginx.conf    #修改配置文件

location / {
         #  root   html;        #注释
         #  index  index.html index.htm;      #注释
          proxy_pass http://192.168.1.12:80;
       }

curl 192.168.1.12
this is java web server
curl 192.168.1.11
this is java web server
此时静态服务器static-server为代理服务器,nginx代理其他服务时,不需要对方同意;方便了模块化操作(如果代理一个服务,双方都要同意,之前的依赖太高,不便于模块化操作)

将static-server虚拟机克隆,并且命名为dynamic-server(动态服务器/后端服务器)

修改index.html文件,并且发布web服务

echo "this is java web server" > /usr/local/nginx/html/index.html

/usr/local/nginx/sbin/nginx    #启动nginx

使用curl访问当前项目

curl localhost

this is java web server

由于没有部署tomcat服务,所以使用nginx代替

nginx访问IP黑名单

克隆一台主机——allow-deny

wget https://nginx.org/download/nginx-1.26.1.tar.gz
yum -y install gcc gcc-c++
yum -y install openssl-devel
tar -zxvf nginx-1.26.1.tar.gz 
cd nginx-1.26.1
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
make && make install
useradd -s /bin/nologin -M nginx

echo "you are luckly" > /usr/local/nginx/html/index.html

设置除12(dynamic-server)主机可以访问,其他主机都不可以访问(在配置文件中的server模块中设置)【allow  允许   deny  禁止】

vim /usr/local/nginx/conf/nginx.conf

charset  utf-8;

allow 192.168.1.12;

deny 192.168.1.0/24;

deny  all;

/usr/local/nginx/sbin/nginx -s reload

二、nginx负载均衡

主机名IP地址
static-server192.168.1.10
dynamic-server001192.168.1.12
dynamic-server002192.168.1.13
dynamic-server003192.168.1.14

1、轮询

依次的将任务部署给不同的主机

dynamic-server001

[root@dynamic-server001 ~]# echo "i am dynamic server 001" > /usr/local/nginx/html/index.html 
[root@dynamic-server001 ~]# /usr/local/nginx/sbin/nginx

dynamic-server002

[root@dynamic-server002 ~]# echo "i am dynamic server 002" > /usr/local/nginx/html/index.html
[root@dynamic-server002 ~]# /usr/local/nginx/sbin/nginx

dynamic-server003

[root@dynamic-server003 ~]# echo "i am dynamic server 003" > /usr/local/nginx/html/index.html
[root@dynamic-server003 ~]# /usr/local/nginx/sbin/nginx

static-server

[root@static-server ~]# echo "i am static server" > /usr/local/nginx/html/index.html 

[root@static-server ~]# vim /usr/local/nginx/conf/nginx.conf

 35     upstream server_group_name{
 
36         server 192.168.1.12:80;
 37         server 192.168.1.13:80;
 38         server 192.168.1.14:80;

 39      }


 49         location / {
 50         #    root   html;                                   #注释掉
 51         #   index  index.html index.htm;        #注释掉
 52          proxy_pass http://server_group_name;  

 54        }

[root@static-server ~]# /usr/local/nginx/sbin/nginx -s reload

物理机浏览器输入192.168.1.11,001,002,003的页面会轮流出现

2、加权轮询

可以在server指令中指定权重,权重越高,分配的请求越多。

[root@static-server ~]# vim /usr/local/nginx/conf/nginx.conf

upstream server_group_name{
        server 192.168.1.12:80
weight=4;
        server 192.168.1.13:80
weight=2;
        server 192.168.1.14:80
weight=1;
     }

[root@static-server ~]# /usr/local/nginx/sbin/nginx -s reload

数字越大,所负担的任务越重

3、ip_hash

每个请求按访问ip的hash结果分配,使得同一客户端的请求总是定向到同一服务器,除非该服务器不可用。

[root@static-server ~]# vim /usr/local/nginx/conf/nginx.conf

 upstream server_group_name{
     
  ip_hash;
        server 192.168.1.12:80 weight=4;
        server 192.168.1.13:80 weight=2;
        server 192.168.1.14:80 weight=1;
     }

[root@static-server ~]# /usr/local/nginx/sbin/nginx -s reload

例:第一次访问到001,之后一直就是,不变

4、least_conn(最少连接)

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,leastconn这种方式就可以达到更好的负载均衡效果。

[root@static-server ~]# vim /usr/local/nginx/conf/nginx.conf

    upstream server_group_name{
        ip_hash;
   
    #least_conn;      #将请求转发给连接数较少的后端服务器
        server 192.168.1.12:80 weight=4;
        server 192.168.1.13:80 weight=2;
        server 192.168.1.14:80 weight=1;
     }

[root@static-server ~]# /usr/local/nginx/sbin/nginx -s reload

5、url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用ur_hash,可以使得同一个url (也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以从缓存中读取。

[root@static-server ~]# vim /usr/local/nginx/conf/nginx.conf   

upstream server_group_name{
        ip_hash;

        #hash $request_uri;
        #least_conn;
        server 192.168.1.12:80 weight=4;
        server 192.168.1.13:80 weight=2;
        server 192.168.1.14:80 weight=1;
     }

[root@static-server ~]# /usr/local/nginx/sbin/nginx -s reload

三、平滑升级

例:将nginx-1.26.1升级为nginx-1.27.0

服务开启的时候升级nginx

wget https://nginx.org/download/nginx-1.27.0.tar.gz
tar -zxvf nginx-1.27.0.tar.gz 
cd nginx-1.27.0
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
make && make install
ls /usr/local/nginx/sbin/

nginx  nginx.old
/usr/local/nginx/sbin/nginx -v

nginx version: nginx/1.27.0
/usr/local/nginx/sbin/nginx.old -v

nginx version: nginx/1.26.1
ps -aux|grep nginx

root       1194  0.0  0.2  46172  2040 ?        Ss   15:03   0:00 nginx: master process /usr/local/nginx/sbin/nginx        #主进程
nginx      1215  0.0  0.2  46620  2292 ?        S    15:45   0:00 nginx: worker process   #子进程
root       4216  0.0  0.0 112824   988 pts/0    R+   16:33   0:00 grep --color=auto nginx
kill -USR2 1194    #启用新版本的nginx服务
kill -WINCH 1215   
kill -QUIT 1194

curl -I localhost    #查看当前nginx版本
HTTP/1.1 200 OK
Server:
nginx/1.27.0
Date: Tue, 30 Jul 2024 08:55:00 GMT
Content-Type: text/html
Content-Length: 24
Connection: keep-alive
Last-Modified: Tue, 30 Jul 2024 07:02:19 GMT
ETag: "66a88ffb-18"
Accept-Ranges: bytes

该过程nginx服务一直能访问到

配置tomcat 10 运行环境  tomcat 可以在jdk8的环境运行;tomcat 10必须在jdk17以上的版本运行

dynamic-server001

wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz

tar -zxvf jdk-22_linux-x64_bin.tar.gz

ls
anaconda-ks.cfg  jdk-22_linux-x64_bin.tar.gz  nginx-1.26.1.tar.gz  jdk-22.0.2       nginx-1.26.1
cd jdk-22.0.2/
ls
bin  conf  include  jmods  legal  lib  LICENSE  man  README  release
cd bin/
ls
jar        javap      jdeps   jlink     jrunscript  jwebserver  jarsigner  jcmd       jfr     jmap      jshell keytool  java       jconsole   jhsdb   jmod      jstack      rmiregistry  javac      jdb       jimage   jpackage  jstat       serialver  javadoc    jdeprscan  jinfo   jps       jstatd
./java
cd
mv  jdk-22.0.2/ /usr/local/jdk22
ls /usr/local/jdk22/

bin  conf  include  jmods  legal  lib  LICENSE  man  README  release
cd /usr/local/jdk22/
sed -n '$p' /etc/profile

unset -f pathmunge
sed -i '$aexport JAVA_HOME=/usr/local/jdk22/' /etc/profile
sed -n '$p' /etc/profile

export JAVA_HOME=/usr/local/jdk22/
source /etc/profile
$JAVA_HOME 
sed -i '$aPATH=$JAVA_HOME/bin:$PATH' /etc/profile
sed -n '$p' /etc/profile

PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java
java -version
cd
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz

相关文章:

nginx的反向代理和负载均衡(seventeen day)

一、nginx的反向代理 新建一台虚拟机——static-server(静态服务器/前端服务器) wget https://nginx.org/download/nginx-1.26.1.tar.gz #安装nginx包 ls 安装依赖软件 yum -y install gcc gcc-c yum -y install pcre-devel yum -y install openss…...

BES编译SDK中遇到的perl问题

0 Preface/Foreword 1 问题清单 1.1 perl\r: No such file or directory 编译完成,通过perl,将elf文件转为bin文件,出现错误。 通过查看,项目源文件中,只有一个pl文件: 查看Linux distro使用的WSL版本&am…...

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目

题目&#xff1a; 给你一个二维整数数组 point &#xff0c;其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处&#xff0c;且右上角在某个点 (x2, y2) 处&#xff0c;其中 x1 < x…...

Django实战:开启数字化任务管理的新纪元

&#x1f680; Django实战&#xff1a;开启数字化任务管理的新纪元 &#x1f310; &#x1f4d6; 引言 在数字化转型的浪潮中&#xff0c;任务管理的智能化成为提升组织效能的关键。今天&#xff0c;我将带领大家深入了解我们最新开发的OFTS系统——一款创新的组织任务管理软…...

史上最全网络安全面试题+答案

1、什么是SQL注入攻击 前端代码未被解析被代入到数据库导致数据库报错 2、什么是XSS攻击 跨站脚本攻击 在网页中嵌入客户端恶意脚本&#xff0c;常用s语言&#xff0c;也会用其他脚本语言 属于客户端攻击&#xff0c;受害者是用户&#xff0c;网站管理员也属于用户&#xf…...

Python 爬虫入门(五):使用 lxml 解析网页

Python 爬虫入门&#xff08;五&#xff09;&#xff1a;使用 lxml 解析网页 前言1. lxml 简介1.1 什么是 lxml&#xff1f;1.2 为什么选择 lxml&#xff1f;1.3 安装 lxml 2. lxml 基础2.1 解析 HTML/XML2.2 XPath 表达式2.3 使用 XPath 提取数据 3. 深入解析3.1 处理命名空间…...

阿里云RDS到亚马逊云RDS的实时数据同步方案详解

1. 需求背景 在当今的多云环境中,企业经常需要在不同云平台之间同步数据。本文将详细介绍如何实现从阿里云RDS MySQL数据库到亚马逊云RDS MySQL数据库的实时数据同步。这种同步对于数据备份、跨区域数据访问、数据分析等场景都非常有用。 2. 方案概述 我们将使用AWS Kinesis…...

《LeetCode热题100》---<滑动窗口篇两道>

本篇博客讲解LeetCode热题100道滑动窗口篇中的两道题 第一道&#xff1a;无重复字符的最长子串 第二道&#xff1a;找到字符当中的所有字母异位词 第一道&#xff1a;无重复字符的最长子串 哈希滑动窗口 class Solution {public int lengthOfLongestSubstring(String s0) {int…...

Python学习计划——9.1多线程编程

并发编程是一种在同一时间段内运行多个任务的方法&#xff0c;可以提高程序的效率和性能。Python中的多线程编程可以使用threading模块实现。以下是多线程编程的详细讲解和可运行的Python案例。 1. 什么是多线程 多线程是一种并发编程的方式&#xff0c;它允许在同一个进程中…...

借助 NGINX 对本地的 Kubernetes 服务进行自动化的 TCP 负载均衡

原文作者&#xff1a;Chris Akker - F5 技术解决方案架构师&#xff0c;Steve Wagner - F5 NGINX 解决方案架构师 原文链接&#xff1a;借助 NGINX 对本地的 Kubernetes 服务进行自动化的 TCP 负载均衡 转载来源&#xff1a;NGINX 中文官网 NGINX 唯一中文官方社区 &#xff0c…...

基于python的大学学生影响力分析系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

upload-labs靶场(1-19关)

upload-labs靶场 简介 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关&#xff0c;每一关都包含着不同上传方式。 注意&#xff1a;能运行<?php phpinfo();?&…...

Python面向对象浅析

目录 面向对象基本概念 一、类和对象 类和对象是面向对象骗程的两个核心概念。 在程序开发中&#xff0c;要设计一个类&#xff0c;通常需要满足一下三个要素: self详解&#xff1a; 对象&#xff08;Object&#xff09; 魔法方法&#xff1a; 类里的一些特殊方法 __in…...

JS基本语法

JS代码写在body结束标签的上面 如点击按钮调用方法&#xff1a; 在浏览器的控制台打印测试数据 console.log() <body><button type"button" onclick"easymethod()">点击我</button><script>//JS代码&#xff0c;写在body标签的…...

LSTM详解总结

LSTM&#xff08;Long Short-Term Memory&#xff09;是一种用于处理和预测时间序列数据的递归神经网络&#xff08;RNN&#xff09;的改进版本。其设计初衷是为了解决普通RNN在长序列训练中出现的梯度消失和梯度爆炸问题。以下是对LSTM的详细解释&#xff0c;包括原理、公式、…...

制品库nexus

详见&#xff1a;Sonatype Nexus Repository搭建与使用&#xff08;详细教程3.70.1&#xff09;-CSDN博客 注意事项&#xff1a; 1.java8环境使用nexus-3.69.0-02-java8-unix.tar.gz包 2.java11环境使用nexus-3.70.1-02-java11-unix.tar.gz包 3.注意使用制品库/etc/yum.repos.…...

2022.11.17 阿里钉钉数据开发岗位一面

今天晚上和阿里钉钉面试官聊了一面&#xff0c;整个过程持续45分钟&#xff0c;还是相当持久的。前面先让我自我介绍&#xff0c;包括自身背景、工作经历和项目经验&#xff0c;在介绍的时候面试官几次打断&#xff0c;让我停下来&#xff0c;然后他提问&#xff0c;我很纳闷还…...

【无标题】Git(仓库,分支,分支冲突)

Git 一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更 一&#xff0e;Git的主要功能&#xff1a; 二&#xff0e;准备git机器 修改静态ip&#xff0c;主机名 三&#xff0e;git仓库的建立&#xff1a; 1.安装git [rootgit ~]# yum -y install git 2.创建一个…...

访问控制列表(ACL)

文章目录 ACL原理与基本配置ACL分类ACL组成ACL规则的匹配与应用 ACL原理与基本配置 ACL(Access Control List&#xff0c;访问控制列表) 读取二层、三层、四层报文信息根据预先定义好的规则对报文进行过滤和分类实现网络访问控制、防止网络攻击和提高网络带宽利用率等目的提高…...

自用git命令(待完善)

----------------------------------------------------------------------------------------- ###基础 git config --global user.name "xxxxx" #设置提交人 name git config --global user.email "xxxxxx163.com" #设置提交人 email git …...

突破•指针四

听说这是目录哦 函数指针数组&#x1fae7;用途&#xff1a;转移表 回调函数&#x1fae7;能量站&#x1f61a; 函数指针数组&#x1fae7; 函数指针数组是存放函数地址的数组&#xff0c;例如int (*parr[5])()中parr先和[]结合&#xff0c;说明parr是可以存放5个函数地址【元…...

深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!

&#x1f538; 第一部分&#xff1a;requests库的入口 我们从requests库的入口开始&#xff0c;通常我们会使用 requests.get() 或 requests.post() 等方法发送HTTP请求。那么&#xff0c;这些方法背后究竟做了些什么呢&#xff1f;我们从requests.get()方法开始看起&#xff…...

day1 服务端与消息编码

文章目录 消息的序列化与反序列化通信过程服务端的实现main 函数(一个简易的客户端) 本文代码地址&#xff1a; 本文是7天用Go从零实现RPC框架GeeRPC的第一篇。 使用 encoding/gob 实现消息的编解码(序列化与反序列化)实现一个简易的服务端&#xff0c;仅接受消息&#xff0c…...

部署WMS仓储管理系统项目后的注意事项

在探讨现代WMS仓储管理系统的部署与运营时&#xff0c;我们不得不深入剖析其背后的多维度考量与策略&#xff0c;以确保这一核心系统能够无缝融入并推动企业的整体供应链优化。WMS仓储管理系统作为连接仓库内部操作与外部供应链的桥梁&#xff0c;其重要性不言而喻&#xff0c;…...

跨网段 IP 地址通信故障分析

现如今计算机网络的规模和复杂性不断增加&#xff0c;跨网段通信成为网络运行中的常见需求。但如果设备处于不同网段且路由设置出现偏差时就会导致通信故障&#xff0c;严重影响网络的正常运行和数据传输。 1.跨网段通信的基本原理 跨网段通信依赖于路由器的路由功能。路由器根…...

存储引擎MySQL和InnoDB(数据库管理与高可用)

1、存储引擎 存储引擎是核心组成部分&#xff0c; 是构成数据库最基础最底层的部件&#xff0c; 利用这个部件&#xff0c;你的Mysql能够对数据进行查询、创建、更新、删除等操作&#xff0c; 也就是说&#xff0c;用户所输入的一系列的mysql语句&#xff0c;是由存储引擎来…...

探索局域网传输新境界 | 闪电藤 v2.2.7

在这个数字化时代&#xff0c;文件的快速、安全传输是我们日常工作中不可或缺的一部分。今天&#xff0c;电脑天空向大家介绍一款革命性的局域网文件传输工具——闪电藤&#xff0c;它将彻底改变你的文件传输体验。 &#x1f3a8; 界面设计 —— 极简之美 闪电藤采用极简的设…...

Tiling Window Management

我主要说一下windows版的 下面这个链接用的人比较多 GitHub - LGUG2Z/komorebi: A tiling window manager for Windows &#x1f349; 建议搭配 GitHub - da-rth/yasb: A highly configurable cross-platform (Windows) status bar written in Python. GitHub - amnweb/ya…...

9. kubernetes资源——pv/pvc持久卷

kubernetes资源——pv/pvc持久卷 一、volume数据卷1、hostPath2、挂载nfs实现持久化 二、pv/pvc 持久卷/持久卷声明1、pv/pvc介绍2、pv/pvc的使用流程2.1 创建pv2.2 创建pvc2.3 创建pod&#xff0c;使用pv做持久化 一、volume数据卷 用于pod中的数据的持久化存储 支持很多的卷…...

2024西安铁一中集训DAY27 ---- 模拟赛((bfs,dp) + 整体二分 + 线段树合并 + (扫描线 + 线段树))

文章目录 前言时间安排及成绩题解A. 倒水&#xff08;bfs dp&#xff09;B. 让他们连通&#xff08;整体二分 按秩合并并查集 / kruskal重构树&#xff09;C. 通信网络&#xff08;线段树合并 二分&#xff09;D. 3SUM&#xff08;扫描线 线段树&#xff09; 前言 T1没做出…...