0%

场景介绍

​ 我有一个阿里云的简配服务器,搭建的自己的站点。之前使用的雷池作为网络防火墙,由于我的服务器只有2GB内存,安装雷池就占用了基本1GB的内存,导致在服务器上稍微折腾一点耗资源的东西,服务器内存就爆了。

​ 所以我问了下万能的GPT,了解了一些别的WAF,最终我选择了星星最多的ModSecurity,但是因为雷池有自动获取SSL证书的功能,所以我又找到了certbot项目来弥补自动更新证书的问题。话不多说,直接上干活。

阅读全文 »

深入理解OTP技术

在当今的数字化时代,数据安全已经成为了顶级优先事项。随着网络攻击的日益频繁,采用强大的认证机制保护用户信息变得至关重要。这就是一次性密码(OTP)技术发挥作用的地方。本文将深入探讨OTP技术,并通过使用Python库PyOTP来演示如何创建一个基于时间的一次性密码(TOTP)示例。

什么是OTP?

OTP,即一次性密码,是一种自动生成的数字密码,通常用于身份验证过程中。与传统的静态密码不同,OTP在短时间内有效,一旦使用就会失效。这种特性使得OTP成为防止未经授权访问的强有力工具。OTP可以通过不同的方法生成,包括基于时间的一次性密码(TOTP)和基于事件的一次性密码(HOTP)。

阅读全文 »

在 Docker 中运行 Nginx 并进行部署和配置涉及以下步骤:

拉取 Nginx 镜像:

首先,你需要拉取官方的 Nginx 镜像。在命令行中执行以下命令:

1
docker pull nginx

运行 Nginx 容器:

使用 docker run 命令来启动一个 Nginx 容器。例如:

1
docker run --name my-nginx -p 8080:80 -d nginx

这条命令会创建一个名为 my-nginx 的容器,将容器的 80 端口映射到宿主机的 8080 端口,并以守护态(后台)模式运行。

阅读全文 »

场景简介

很多朋友家里都有台式机,而且会使用家里的台式机进行办公(台式机性能好),但是有时候在外(出差,公司,回老家等等)还需要处理下一些问题,这时候就比较麻烦,家里没有固定IP,没办法远程家里电脑。本篇内容介绍如何通过云主机实现在外也可以随时远程家里的电脑。

本方案需要有一点点计算机基础才可轻松完成。

阅读全文 »

简绍

雷池是一个web应用防火墙,免费版可以满足个人网站基本要求,可以拦截非法攻击。

官网

安装

安装文档

安装准备

预留80443端口,雷池会接受来自这两个端口的请求,进行攻击判断,然后转发到真正服务端口。

安装雷池

执行如下命令会自动安装Docker镜像

1
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

站点设置

  • 等待安装完成,然后访问服务器9443端口,访问雷池管理界面。初次登录需要使用身份验证应用扫描二维码设置动态口令。
  • 防护站点中添加自己的防护站点。上游服务器填写真实服务地址。

场景

最近公司有个集群,其中有一个节点内存(11BG)远远超过其他节点(6GB),而且最近此节点与slave经常出现网络异常。所以业务团队要求排查集群问题,并恢复集群稳定。

问题分析

通过排除法,不难发现原因出在这个节点内存占用太大,内存过大,就可以出现slave在全量同步时出现超时情况。单个节点内存太大的可能性如下:

  1. key分布不均匀,导致某个节点key分配过多。
  2. 存在超级大key问题。

经过分析,发现各个master上的key数量相差不大,所以不存在热点问题。那么问题大概率是超级大key问题。

RDB 文件分析

为了判断是否存在大key,我们尽量使用RDB文件进行离线分析。

阅读全文 »

venv环境

Python 虚拟环境(Virtual Environment,简称 venv)是一种用于在同一系统上管理多个独立 Python 环境的机制。虚拟环境可以帮助您在不同的项目中使用不同的 Python 版本和依赖,从而隔离项目之间的依赖关系,避免版本冲突。

检测是否安装虚拟环境

1
sudo python3 -m venv -h
阅读全文 »

Rebalance问题处理

最近有个项目,过一段时间就出出现如下问题,现象为offset不再提交,但是观察log数据发现数据还有在消费。

1
Attempt to heartbeat failed since group is rebalancing
阅读全文 »

HTTP Sink 配置

最少配置

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"connector.class": "io.confluent.connect.http.HttpSinkConnector",
"http.api.url": "http://localhost:8288/api/messages",
"request.method": "POST",
"topics": "REASON_HTTP",
"tasks.max": "1",
"request.body.format": "json",
"confluent.topic.bootstrap.servers": "localhost:9092",
"key.converter.schemas.enable": "false",
"value.converter.schemas.enable": "false",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter"
}
阅读全文 »