Nginx负载均衡策略
概述Nginx负载均衡策略有:轮询(默认)、weight权重、ip_hash、least_conn最少连接
轮询(默认)每个请求轮流分配到不同的后端服务器,如果后端服务器挂掉,则自动被剔除
实例:
1234upstream www.123.com{ server 172.17.0.2:8080; server 172.17.0.3:9090;}
weight权重根据weight权重,请求会根据权重比例分发给不同后端服务器,weight权重越高,分配的比例越大;实际分配时,根据服务器硬件配置高低,来具体分配weight权重,硬件配置高的,weight就配置高点
实例:
1234upstream www.123.com{ server 172.17.0.2:8080 weight=5; server 172.17.0.3:9090 weight=10;}
ip_haship_hash策略是根据用户客户端的IP的hash值来分配具体服务器,这样每个访问客户端都会固定访问某一个服务器,这样可以解决session丢失问题 ...
Nginx实现负载均衡
前提在云服务器上运行好两个及以上相同的项目,并且都可以通过IP地址:端口号访问,拥有自己的域名
实现过程在实现反向代理的博客基础上修改upstream(有多少个项目就有多少个server),博客链接为:Nginx 实现反向代理
1234upstream test { server 121.222.34.112:8080; server 121.211.34.112:8080;}
结果通过域名可以访问,即使有一个项目掉线了也可以正常访问
Nginx实现反向代理
前提在云服务器上运行好项目,并且可以通过IP地址:端口号访问,拥有自己的域名
实现过程添加代码打开/etc/nginx/conf.d目录下的default.conf配置文件,在最下面添加以下代码,upstream和server成对出现
123456789101112131415161718192021222324252627upstream test { server 121.222.34.112:8080;}server { listen 80; #域名 server_name test.ztlztl.cn; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; #index index.html index.htm; proxy_pass http://test; proxy_connect_timeout 30; #连接超时 ...
Docker安装Nginx
拉取镜像1docker pull nginx
创建并运行容器1docker run -d --name=自定义名称 -v /home/data/nginx:/etc/nginx -p 80:80 nginx镜像id
进入容器1docker exec -it nginx容器id bash
测试浏览器地址栏输入虚拟机IP,看到Welcome to nginx!说明安装成功
form表单无法提交input disabled内容
问题描述使用了disable属性让文本框无法编辑,但是提交form表单时无法获取该文本框的值,代码如下:
123456<form action="/student/update" method="post" style="text-align: center;margin-top: 10%"> <input type="text" value="${student.id}" name="id" placeholder="编号" required="required" disabled="disabled"> <input type="text" value="${student.name}" name="name" placeholder="姓名" ...
Windows10释放被占用端口
查看PID打开CMD,输入命令查看端口4000的PID
1netstat -aon|findstr "4000"
看下图的0.0.0.0:4000,LISTENING后的数值:16388就是PID
释放端口CMD方式释放输入以下命令,PID为上图LISTENING后的数值
1taskkill /T /F /PID 16388
任务管理器释放查看指定 PID 的进程(也可以不看,记住PID即可)
1tasklist|findstr "16388"
打开任务管理,选择详细信息选项,根据进程名称或者PID找到进程
右键点击并选择结束任务
IntelliJ IDEA创建Spring项目
创建Maven项目查看博客:idea创建Maven项目
引入依赖12345678910111213<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.9.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok& ...
Docker私有仓库删除镜像
问题描述对于私有仓库的镜像,Docker是没有命令对其进行删除的
解决办法进入私有仓库的容器内,找到镜像文件,然后手动删除即可
删除过程进入容器先运行对应私有仓库的容器,然后进入容器
1docker exec -it 私有仓库容器id sh
修改配置文件该配置文件在 /etc/docker/registry 目录下,名称为:config.yml ,在storage节点添加以下代码:
12delete: enabled: true
完整config.yml代码如下:
1234567891011121314151617181920version: 0.1log: fields: service: registrystorage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry delete: enabled: truehttp: addr: :5000 headers: X-Content-Type-Options: [nosniff ...
Docker搭建私有仓库
介绍Docker私有仓库程序本身就是一个镜像,主要是企业内部用来存放镜像的仓库,相对官方仓库以及阿里云仓库,具有更高的保密安全级别
搭建过程拉取私有仓库镜像1docker pull registry
创建并启动容器1docker run -di --name=myRegistry -p 5000:5000 registry
测试浏览器地址栏输入:http://虚拟机id:5000/v2/_catalog,看到下图说明搭建成功
修改daemon.json该文件在 /etc/docker 目录下,添加以下代码让Docker信任私有仓库
1"insecure-registries": ["虚拟机id:5000"]
重启Docker1systemctl restart docker
测试上传镜像标记要上传到私有仓库的镜像为私有仓库的镜像(标记只是引用,镜像id还是被标记的镜像的id)
1docker tag 镜像id 虚拟机id:5000/自定义名称
推送镜像到私有仓库,推送前先启动私有仓库的容器
1docker push 上图划红线的镜像 ...
DockerFile的ONBUILD指令
简介父镜像在被子镜像继承后父镜像的ONBUILD被触发,可以把ONBUID理解为一个触发器。编写Dockerfile的时候,其他命令都是为了自身镜像服务的,只有ONBUILD是为了子镜像服务
使用构建父镜像编写父镜像DockerFile,命名为:parent_df,内容如下:
12345FROM centosONBUILD RUN yum -y install vimCMD /bin/bash
构建父镜像
1docker build -f parent_df -t parent .
构建子镜像编写子镜像DockerFile,命名为:son_df,内容如下:
1FROM parent
构建子镜像
1 docker build -f son_df -t son .
结果当构建子镜像的时候,父镜像的ONBUILD会触发,子镜像直接安装vim,父镜像是没有安装vim的。所以使用父镜像创建的容器使用vim命令会报错,而用子镜像创建的容器可以使用vim命令