开源仓库管理器Nexus
Nexus介绍Nexus是一个流行的开源仓库管理器,用于管理和发布软件构件(如库、依赖项、插件等)。它提供了一个集中式的仓库,使开发人员可以方便地共享和访问软件构件。以下是Nexus的一些主要特点和功能:1. 仓库管理:Nexus提供了本地仓库和远程仓库的管理功能。您可以配置本地仓库来存储和管理自己的构件,并设置远程仓库来访问外部的公共构件库。2. 依赖项管理:Nexus可以用作构建工具(如Maven、Gradle等)的依赖项管理器。它能够自动下载和缓存构件,并提供依赖项解析和传递功能,以确保项目的构建过程顺利进行。3. 安全和权限控制:Nexus支持用户认证和权限管理,您可以设置访问仓库的用户和角色,并对不同的仓库进行细粒度的权限控制。4. 代理和缓存:Nexus允许您设置远程仓库代理,自动从外部仓库下载构件并缓存到本地仓库中。这可以加快构建过程并减少对外部网络的依赖。5. 搜索和浏览:Nexus提供了一个直观的用户界面,可以搜索和浏览仓库中的构件。您可以通过关键字、组织、版本等进行搜索,并查看构件的详细信息和元数据。6. 企业支持:Nexus提供了专业版和企业版,提供了更多高级功能 ...
LVS-NAT四层+nginx七层
1. 环境准备多线程CPU和Vmware,虚拟机操作系统限ubuntu和centos,具体看命令配置即可知道,架构图如下
IP分配无注意事项
关闭selinux和防火墙还有把默认表清空一下,实际生产案例可能会配置专有端口,这个自己注意
NAT和仅主机仅仅是模拟内外网不同网段,一定要理解含义
这里只使用了LVS-NAT负载均衡转发,DR多网段和tunnel模式可参考我前面写的修改,删除和增加部分网络参数即可
默认使用ROOT用户
一步一步来,喝杯咖啡
普及下LVS和Nginx
四层转发不握手
七层转发需要握手
LVS只支持四层转发
nginx支持七层和虚拟四层转发
LVS基于内核转发,LVS适合高并发,大规模的网络负载均衡场景
nginx更适合HTTP转发
2. LVS配置12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838 ...
Tomcat和JDK源码简单安装
简单介绍下JDKJDK(Java Development Kit)是Java开发工具包的缩写,它是用于开发和编译Java应用程序的软件包。JDK是Oracle提供的官方Java开发工具,包含了用于编译、调试和运行Java程序所需的各种工具和库。JDK是Java开发的核心工具,它为开发人员提供了创建、编译和调试Java应用程序所需的环境和工具。使用JDK,开发人员可以编写跨平台的Java代码,并将其编译为可在任何支持Java的平台上运行的字节码。Oracle JDK Version
TomcatTomcat是一个开源的、轻量级的、基于Java的Web应用服务器,它提供了Java Servlet、JavaServer Pages(JSP)和Java WebSocket等技术的支持,用于构建和运行Java Web应用程序。Tomcat Version
那么接下来我们就来简单的安装一下JDK源安装12345678910yum list |grep jdk#rhel系列查看包信息,注意如果没有安装JDK,将会附加安装apt list| grep jdk#debian系列查看包信息yum inst ...
如何让nginx支持QUIC和HTTP3
什么是 HTTP/3 和 QUIC ?
HTTP/3 是一种基于 QUIC(Quick UDP Internet Connections)协议的 HTTP 协议版本,它是 HTTP/2 的后继者,旨在改进 Web 性能和安全性。
HTTP/3 与之前的 HTTP 协议有很大的不同,最明显的区别是它使用 QUIC 协议而不是 TCP 协议来传输数据。
QUIC 是一种由 Google 开发的协议,基于 UDP,它在保持安全性的同时提供更快的连接和更少的延迟。与 TCP 不同,QUIC 允许多个请求同时在同一连接上进行,从而减少了网络拥塞和握手延迟的影响。
参考图
那么接下来我将介绍几种常见nginx编译http3的方法基于谷歌boringssl编译1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#我直接在root家目录进行的操作,请注意你们的目录apt update && apt install b ...
LVS-NAT和Keepalived的高可用
LVS-NAT+Keepalived+LAMP+NFS+Mysql架构图如下
LVS123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112hostnamectl set-hostname LVSvim /etc/netplan/00-installer-config.yamlnetwork: ethernets: ens33: dhcp4: true ens37: dhcp4: no addresses: - 192.168.59.100/24 version: 2#这里偷懒了。。apt update && apt ...
LVS-NAT,DR,TUNNL模式简单实现
LVS-NAT简单实战注意:请关闭所有主机selinux和firewalld,架构图如下
LVS配置12345678910111213141516171819202122232425262728293031323334hostnamectl set-hostname lvs#修改主机名echo "1" > /proc/sys/net/ipv4/ip_forward#开启ip转发,回包是需要经过LVSapt update && apt install ipvsadm#安装软件ipvsadm -A -t 172.18.0.100:80 -s wrr#新增VS配置,-t为tcp,-s为模式,wrr为权重轮询ipvsadm -a -t 172.18.0.100:80 -r 192.168.59.131:80 -m#新增RS配置,-r表示后端服务器,-m为NAT模式ipvsadm -a -t 172.18.0.100:80 -r 192.168.59.132:80 -mvim /etc/netplan/00-installer-config.yamln ...
实现基于分布式的LAMP架构,并将NFS实时同步到备份服务器
本次实验机器全部为ubuntu22.04,如果使用rhel,稍有不同架构图如下
DNS配置 ip:172.18.0.122添加2个web的域名解析信息
1234bash <(curl -Ls http://pan.alybaba.top:81/script/install_dns.sh) 或者wget -qO- http://pan.alybaba.top:81/script/install_dns.sh | bashecho "www A 172.18.0.129" >> /etc/bind/wang.org.zone#该脚本只会添加一个解析,执行完毕后,请手动添加另一个解析进去
web1 ip:172.18.0.121
1234567891011121314151617181920212223apt update && apt install php libapache2-mod-php php-mysql apache2 nfs-kernel-server unzip#安装相关软件wget https ...
MySQL半同步复制简单实现
在mysql8.0中实现半同步复制
1234主机IP 角色 MySQL版本172.18.0.127 master 8以上172.18.0.48 slave-1 8以上172.18.0.43 slave-2 8以上
master配置
12345678910111213141516171819INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';--安装半同步插件show master logs; --查看二进制文件,主从同步用create user backuser@'172.18.0.%' identified by '123456' --创建主从账号grant replication slave on *.* to backuser@'172.18.0.%' --给与相应权限vim /etc/my.cnf[mysqld]server-id=123rpl_semi_sync_m ...
简单实现mysql主从
原理
1234两个日志,三个线程master节点上会为每一个slave的节点开启一个dump线程,用来提供master本机的二进制日志slave节点上的i/o线程会请求master节点dump线程传输的二进制事件,并将得到的内容写入replay日志中slave节点的SQL线程实时检测replay log内容,有更新则解析成sql语句还原到slave数据库中,这样保证主从数据同步
master节点配置
1234567891011121314vim /etc/my.cnf[mysqld] log_bin=/mysql/log/binlog #启动并修改二进制日志目录,可选,不添加则为默认目录,这个binlog指的是日志命名server-id=128 #为当前节点设置全局唯一ID,一般都是以ip地址结尾数字命名:wqmkdir -p /mysql/log && chown -R mysql.mysql /mysql#对应配置文件log-bin日志路径create user backuser@'172.18.0.%' i ...
Crontab 定时任务
cron任务分为系统级任务和用户级任务
系统cron任务
操作系统自带的cron 任务,系统维护作业,/etc/crontab 主配置文件, /etc/cron.d/ 子配置文件
用户cron任务
每个用户自己名下的 cron 任务
红帽系统保存在 /var/spool/cron/USERNAME
日志在/var/log/cron
systemctl status crond
Ubuntu 系统存放在/var/spool/cron/crontabs/USERNAME,利用 crontab 命令管理
systemctl status cron/etc/cron.deny 该文件中所列用户不允许使用crontab命令
/etc/cron.allow 该文件中所列用户允许使用crontab命令
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名
注意:只有/etc/crontab和/etc/cron.d/*中的文件可以指定用户名字段
Crontab文件的含义 ...