首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
289
篇与
的结果
2024-10-31
docker报错之 archive/tar: invalid tar header
导入镜像报错 正常安装docker服务后发现导入镜像出现如下错误: Error processing tar file(exit status 1): archive/tar: invalid tar header 解决方法 经过排查,是因为导入的镜像的 docker 版本与当前机器的 docker 版本不符合,但尝试升级docker 版本之后发现仍然是此错误,继续排查发现 docker info 存在 client version 和 server version,使用yum默认只升级了 client version, server version需要重启服务才能使用最新版
2024年10月31日
9 阅读
0 评论
0 点赞
2024-10-23
nginx限制ip访问-安全
通常的解决方案 通常的需求是针对几个ip做白名单、或者针对内网ip做白名单,这样的范围比较少。使用 if 判断 remote_addr 就可以很好的解决了。 复杂的场景 如果需要对一个城市、一个国家做 ip 名单,那么应该如何操作呢? 实现方法 可以考虑使用 nginx 的 ngx_http_geoip 模块,配合 Maxmind ip 库来实现 https://nginx.org/en/docs/http/ngx_http_geoip_module.html https://www.miyuru.lk/geoiplegacy 另一种方案 上面的 ip 数据是 nginx 支持格式的,不清楚用什么方法解析出来,并且数据量更大,但我们只需要针对城市做白名单就好了,所以最终的方案如下: 使用之前获取的城市ip(用来做iptables规则的),改写为 allow 格式放入单独的文件中,然后再 include 到 server 中
2024年10月23日
6 阅读
0 评论
0 点赞
2024-10-12
docker nginx的真实ip地址问题
需求背景 使用 docker swarm 集群来安装 nginx 有一个问题,nginx获取到的客户端地址是内网ip,通过初步排查,发现这几个ip都是 nginx 启动在 docker 节点上的 bridge 网络网关地址 影响 这样nginx仍然有办法获取到真实ip的,但是需要多层nginx,然后通过上一层添加到请求头 X-Forwarded-For 中 但是对于其他应用,不能主动获取 http 头部的程序,甚至是 tcp 应用,就没有那么容易修改、获取真实的客户端 ip 地址了,那此时应该如何处理呢? 方案 解决方案一共有两个: 启动服务的时候端口设置为 host 模式,那么监听就会绑定在对应物理机的接口上,从而可以实现获取客户端真实的 ip 地址。但这个方法也是有缺点的,一旦使用 host 模式,那么就无法实现负载均衡(无法访问其他docker节点端口来访问到此服务),之前很早就使用的这个办法,为了让其他节点都能提供服务,于是在每个节点都启动了一份 nginx docker 官方到今天仍然没有给出很好的解决方案,这是一个长达8年的讨论(2016~2024) # 超长时间的讨论 https://github.com/moby/moby/issues/25526 但是根据帖子的内容,第三方开发者给出了以下解决方案: https://github.com/newsnowlabs/docker-ingress-routing-daemon 后续尝试使用,但是有几个点需要注意,是否影响性能、是否在已有docker swarm集群中能够使用、在使用后能否在docker swarm集群中移除、添加节点扩展、提权、降级节点等
2024年10月12日
4 阅读
0 评论
0 点赞
2024-10-11
java jvm内存泄漏、内存占用过高
解决方案 如果对外内存使用过高,可以在启动的时候增加如下参数解决: export MALLOC_ARENA_MAX=4
2024年10月11日
7 阅读
0 评论
0 点赞
2024-09-27
python3.6.15的编译安装
背景 现存一些古老的站点使用了旧的 ssl 版本,现在新版本的 python 无法使用,大概报错 unsupport protocol,在测试了一番之后无论如何也解决不了,无法更换目的站点的 ssl 版本,那只能更换本地的 python 版本了 版本选择 这个站点在其他 python3.6 的机器上使用 requests 可以执行,所以计划本机再安装一个 python3.6.15 安装遇到的问题 安装完成后使用 pip3 总是 segmentation fault core dump,解决办法参考文档: https://stackoverflow.com/questions/74553858/how-to-fix-python-pip-segmentation-fault-core-dumped-response-from-virtualenv 补丁方案: https://github.com/pyenv/pyenv-virtualenv/issues/410#issuecomment-1125942002 然后根据步骤编译安装 cd ~ mkdir py36 mkdir py36/tempfiles cd py36/tempfiles curl https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tar.xz --output Python-3.6.15.tar.xz tar -xJvf Python-3.6.15.tar.xz cd Python-3.6.15 vim alignment.patch # Use your preferred text editor # Paste the contents of the patch, save and quit patch -p0 < alignment.patch cd .. Python-3.6.15/configure --prefix=/home/<username>/py36 --enable-optimizations --with-lto make make install cd .. rm -rf tempfiles 新的问题 事情往往总是没有那么顺利 参照其他支持的机器先安装了低版本的 openssl1.0.2u,然后 python3.6 使用参数 --with-openssl=/usr/local/openssl 来编译安装,但是结果查看 ssl 版本的时候仍然不对,查看命令 import ssl print(ssl.OPENSSL_VERSION) 大概知道是参数没有成功,果然查看支持的参数 ./configure --help 是没有 ssl 相关的参数的 所以接下来大量检索了上网的办法,大概如下: 编译之前指定参数 export LDFLAGS="-L/data/software/openssl1.0.2/lib" export CPPFLAGS="-I/data/software/openssl1.0.2/include" 修改 python 的源码文件 Modules/Setup,取消注释,并且修改为实际 openssl 路径 SSL=/data/software/openssl1.0.2 _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto 再次编译安装。这次编译都通不过了,提示找不到 libssl.so.0.0 接下来请教了 chatgpt,与网上的方案基本没有差别,所以仍然无效果 柳暗花明 最后突发奇想,咱们是 openssl 没法编译上,但我也不是必须要在这台机器上编译,于是我把其他编译好的机器发到这台上尝试运行,结果报错找不到 libssl.so.10 接着把安装的 openssl 库文件 libssl.so.0.0 连接到相关目录(通过 ldconfig -pv查看一般放在哪里),再次执行,成功运行 后续发现 pip3 是执行不了的,因为安装的目录不一致,python 安装目录下的所有脚本指定了 python 命令路径, 干脆在其他机器重新编译了安装路径保持一致 但 pip3 命令还是无法执行,缺少 libffi.so.6 库,于是尝试静态编译 ./configure --prefix=/data/software/python3.6 --enable-shared --enable-static 结果无效果,反而 python 命令还要多增加一个动态库才能正常执行了, 在 python/lib 下链接到系统动态库目录后,仍然是 libffi 的错误,ubuntu 安装的是 libffi8,而源机器是6。猜测有两个方案: 可以尝试在编译python的时候使用 libffi8 把源机器的 libffi.so.6 发送到目的机器的动态库目录 急着使用,所以先尝试了方法2,目前基本上代码执行都没问题,后续测试方法1
2024年09月27日
9 阅读
0 评论
0 点赞
1
...
7
8
9
...
58