Harbor、Nginx打怪升级之路六

目录

1.Harbor高可用的实现

2.几种IO模型的原理

3.nginx配置强制https访问http

4.nginx通过不同path反向代理至不同后端tomcat


1.Harbor高可用的实现

1.先将harbor环境部署,然后再备harbor站点中实现基于镜像的复制

2.在备harbor-系统管理-仓库管理-新建复制目标

3.在备harbor-系统管理-复制管理-新建规则;在主harbor做同样操作,实现双向同步

 搭建harbor一键安装脚本--针对centos(不过harbor的包比较大,建议提前下载下来-修改脚本中harbor安装函数)

# 要安装harbor需要准备docker、docker-compose的环境

#!/bin/bash

COLOR="echo -e \E[1;31m"
END="\E[m"
DOCKER_VERSION="20.10.8"
HARBOR_VERSION="v2.1.6"
IPADDR=`hostname -I |awk '{print $1}'`
DOCKER_COMPOSE_VERSION="1.18.0"   ## 2.0以上的docker-compose有所变化,此脚本暂适合2.0以下的版本
HARBOR_ADMIN_PASSWORD=shaodeng


#1.
install_docker(){
 ${COLOR}"开始安装 Docker....." ${END}
 sleep 1

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache


${COLOR}"即将安装:docker-" ${DOCKER_VERSION} "版本..." ${END}
${COLOR}"如果想安装其他Docker版本,请crtl+c键退出,修改版本再执行"${END}
sleep 5

yum install -y docker-ce-${DOCKER_VERSION}-3.el7.x86_64 docker-ce-cli-${DOCKER_VERSION}-3.el7.x86_64

mkdir -p /etc/docker   ## 开启镜像加速
tee /etc/docker/daemon.json <<- 'EOF'
{
  "registry-mirrors": ["https://fivjgw66.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker
docker version && ${COLOR} "Docker 安装完成" ${END} || ${COLOR}“Docker 安装失败”${END}
}

#2.
install_docker_compse(){
  ${COLOR}"开始安装 Docker compse.."${END}
  sleep 1


curl -L http://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

docker-compose --version && ${COLOR}"Docker compose 安装完成" ${END} || ${COLOR}"Docker compose 安装失败"  ${END}

}


#3.
install_harbor(){
  ${COLOR}"开始安装 Harbor.."${END}
  sleep 1



wget https://github.com/goharbor/harbor/releases/download/${HARBOR_VERSION}/harbor-offline-installer-${HARBOR_VERSION}.tgz

mkdir /apps
tar xvf harbor-offline-installer-${HARBOR_VERSION}.tgz -C /apps

sed -i.bak -e 's/^hostname =.*/hostname = '''$IPADDR'''/' -e 's/^harbor_admin_password =.*/harbor_admin_password = '''$HARBOR_ADMIN_PASSWORD'''/' /apps/harbor/harbor.cfg


yum install -y python

/apps/harbor/install.sh && ${COLOR}"Harbor 安装完成"${END} || ${COLOR}"Harbor 安装失败"${END}

}



harbor_service(){
cat > /lib/systemd/system/harbor.service </dev/null || ${COLOR}"Harbor已配置开机启动"${END}

}


rpm -q docker-ce &> /dev/null && ${COLOR}"Docker已安装"${END} || install_docker
docker-compose --version &> /dev/null && ${COLOR}"Docker Compose已安装"${END} || install_docker_compose

install_harbor

harbor_service

2.几种IO模型的原理

阻塞IO:用户线程在内核进行IO操作时被阻塞,直至IO操作完成。

非阻塞IO:用户线程不断发起IO请求直至内核返回结果;未返回结果期间用户线程能够处理其他请求

多路复用IO:主要包括select、poll、epoll三种系统调用;多个连接共有一个等待机制(即这三个系统调用轮询socket),当某个socket到达,就通知用户进程。

信号驱动式IO:应用程序使用套接口进行信号驱动IO,并安装一个信号处理函数,进程继续运行并不阻塞

异步IO:进程向内核发送IO调用后,可继续接受其他请求;内核调用到达IO不能立即返回,内核也回其他事务直至IO完成通知给内核,内核在将IO返回给进程。

3.nginx配置强制https访问http

思路:【ngx_http_rewrite_module】 rewrite模块

1. location匹配 / 根目录-->做全站url匹配

2. 条件判断 if($scheme=https),rewrite / http://$host/login redirect;  自动跳转

vim /etc/nginx/nginx.conf

4.nginx通过不同path反向代理至不同后端tomcat

思路:【proxy_pass 以及upstream模块(各后端如果有多台服务器)】

1.一般配置在http块内,定义upstream为tomcat1和tomcat2,在tomcat1内server填入一组后端服务器ip地址,同理tomcat2

2.定义不同path对应的location

3.在location块内添加的proxy_pass关键字在加上对应的url及upstream名如 proxy_pass http://tomcat2

Harbor、Nginx打怪升级之路六_第1张图片 

 

你可能感兴趣的:(SRE,nginx,https,tomcat)