- 博客(18)
- 收藏
- 关注
原创 docker swarm搭建之阿里云服务器实战(二)
这种机制能够有效防止未经授权的访问,即使有人物理上获得了对运行管理节点服务器的访问权限,也无法轻易接管 Swarm 集群。当你进行task扩容时,如果不想往其中某一个服务器中扩容,可以使用如下命令先暂停该服务器的节点【暂停时不会影响该服务区原有节点的运行,只是不允许往该节点进行task扩容】防止意外变更:在没有正确的解锁密钥的情况下,即使是合法的管理员也无法随意修改 Swarm 集群的状态。默认的过期时间时90天,在其即将过期时,可以通过如下命令,来平滑的生产新的ca证书。将管理节点降级为工作节点。
2025-02-26 17:32:11
573
原创 docker API的TLS加密之阿里云实战
目的:为了避免在公网暴露2375端口,生产环境务必启用Docker API的TLS加密。两台服务器的ip如下公网ip:118.190.204.77主私网ip:172.22.84.108公网ip:182.92.124.100主私网ip:172.18.4.11。
2025-02-24 13:55:47
295
原创 docker swarm搭建之阿里云服务器实战(一)
配置说明:两台服务器的ip如下此场景为:两台服务器在下。(如果在同一账户下,那就更简单了,直接跳过步骤三)【建议】:使用私有网络(如172.22.84.108和172.18.4.11)进行Swarm通信,避免暴露公网IP。
2025-02-19 17:35:38
1102
原创 1.二十三种设计模式 —— 单例模式
概述。。单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。不管new几次,在内存空间中都使用的是一个内存空间地址如何做到呢?我们知道创建一个对象就是通过new,来调用构造函数所以,我们通过私有构造函数,也就是不能在别的类中new了。
2024-09-25 10:39:29
537
原创 浏览器自动下载文件
使用插件ap-poi ,官方文档:https://deepoove.com/poi-tl/1.10.x/使用插件easyExcel。
2024-09-10 16:19:33
352
原创 docker部署的nginx使用logrotate进行日志切割
使用docker部署nginx,查看我的上篇文章:docker容器内是没有logrotate服务的,我们可以使用宿主机内的的logrotate.
2024-05-31 09:33:35
1129
原创 常用的缓存读写策略
写方法一:先更新数据库,在删除对应的缓存方法二和方法三:都是如果缓存存在,则先更新缓存,之后再去更新数据库。读方法一、方法二、方法三:都是先从缓存中读取,如果存在直接返回,如果不存在,则从数据库读取,刷入缓存中。
2024-05-19 11:51:53
193
原创 在云服务器中,通过docker部署的nginx,如何配置http和https
直接编写配置文件server {# HTTP的默认访问端口80listen 80;# 填写服务器ip 【两种选择选其一】# 有域名选择此条# 没有域名选择此条# 将所有HTTP请求通过rewrite指令重定向到HTTPS。#一层代理时是用户真实ip,二层代理时是第一台nginxip#一层代理时没有值,多层代理里面会存储多个ip值,第一个值就是真实用户ip。
2024-04-15 16:12:06
766
1
原创 Tcp/IP的三次握手和四次解手
如果客户端每次发过来SYN,服务端都要记住其序号,并新生成自己需要记住的序号,那么服务器就需要挂起非常多的资源,如果有黑客借此不断的发送SYN但不进行下一步,就会让服务器崩溃,这就是典型的DDOS攻击。报文中还有Sequence序号【随机生成】,因为客户端可能会发送多个序号,这时服务器就有依据可以判断哪些是累赘信息。因为在发送http请求和响应的时候序号和确认号被不断递增,所以此处序列号和确认号就用表情来表示了。服务器不保存自己的序号,而是根据服务器的IP地址和端口号等私有信息进行算法的运算得到序号。
2023-10-31 15:39:01
108
原创 docker安装mysql8.0,并挂载数据卷
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '要修改的密码';把容器跑起来后,去用Navicat去连接,发现可以连上 —— 说明你的端口是开放的,什么防火墙没开啊,阿里云端口没开啊,都是扯蛋!vim /mydata/mysql/conf # 第一次跑起来的容器,查看conf里边是空的。#此时,下边的命令也不必执行了,因为它执行完,就是你删除完后的。# 查看mysql数据库下的user表,发现。# 再次测试,发现还是连接成功。
2023-09-27 11:14:11
3358
1
原创 docker安装nginx,并进行数据卷挂载
注:-p 虚拟机的端口80:docker容器内的端口。本地没有的话 就主动下载镜像。# 复制配置文件和页面。
2023-09-26 21:16:11
398
原创 linux中关于mysql:8版本初始随机密码登录不上,修改密码的操作
在 [mysqld] 下 skip-grant-tables # 添加该语句:忽略mysql权限问题,直接登录。ALTER user'root'@'%' IDENTIFIED BY '你要设置的密码';在 [mysqld] 下注释掉刚才添加的语句 #skip-grant-tables。mysql -u root -p # 输入你刚才设置的密码。再次执行登录mysql命令,输入密码,可以发现登录成功!mysql -u root -p # 直接回车。mysql -u root -p # 直接回车。
2023-04-25 18:10:47
1132
原创 对于C语言的指针理解----指向一维数组的指针变量
1.定义:int (*p)[4];从运算符的优先级看,先看括号里的*p是一个指针变量,然后再看[4],所以,p首先是一个变量,但是区别于普通变量,它用于指向包含4个元素的一维数组,而不是指向一个变量!
2022-03-20 11:33:58
1966
原创 对于C语言的指针理解----字符串
一、字符串与指针1.对于字符串的理解对于字符串而言,c语言并没有为其提供任何专门的表示法,完全使用字符数组和字符指针来处理。2.字符数组和字符指针字符数组:用字符串初始化字符数组,是把此字符串依次存入字符数组所占空间中,这个数组是有名字的。字符指针:在内存中开辟了一个字符数组用来存放该字符串常量,但是这个数组是没有名字的。不能通过数组名来引用,只能通过指针变量来引用。
2022-03-12 12:27:22
1998
6
原创 对于C语言的指针理解----一维数组
一、在一维数组中指针的使用1.int a[5]={1,3,5,7,9};int *p=&a[0];*q=&a[4];q-p=4; //有意义,4代表q与p直接的元素个数p+q或q+p//均无意义注:q与p必须指向同一个数组,去进行减法计算才有意义。2.a++ //是错误的p++//是正确的,因为a是一个地址常量,而p是一个地址变量,并且++只能作用于变量之中3.p=a;(1)printf("%d",*p++);printf(
2022-03-10 13:13:45
738
转载 java8——初始Lambda
一、什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。当然,这个并不是一个很简洁的写法。所以,为了使这个赋值操作更加elegant, 我们可以移除一些没用的声明。这样,我们就成功的非常优雅的把“一块代码”赋..
2021-05-19 21:17:37
346
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人