首页
壁纸
留言板
友链
更多
统计归档
Search
1
TensorBoard:训练日志及网络结构可视化工具
12,579 阅读
2
主板开机跳线接线图【F_PANEL接线图】
6,840 阅读
3
Linux使用V2Ray 原生客户端
6,009 阅读
4
移动光猫获取超级密码&开启公网ipv6
4,356 阅读
5
NVIDIA 显卡限制功率
3,088 阅读
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
linux
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
登录
/
注册
Search
标签搜索
好物分享
学习笔记
linux
MySQL
nvidia
typero
内网穿透
webdav
vps
java
cudann
gcc
cuda
树莓派
CNN
图像去雾
ssh安全
nps
暗通道先验
阿里云
jupiter
累计撰写
354
篇文章
累计收到
69
条评论
首页
栏目
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
linux
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
页面
壁纸
留言板
友链
统计归档
搜索到
95
篇与
的结果
2024-08-18
docker安装Immich-一款开源高性能的自托管照片和视频备份方案
1.下载docker镜像docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/immich-server:v1.110.0 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/immich-server:v1.110.0 ghcr.io/immich-app/immich-server:v1.110.0 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/immich-machine-learning:v1.110.0 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/immich-machine-learning:v1.110.0 ghcr.io/immich-app/immich-machine-learning:v1.110.0 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpine docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpine docker.io/redis:7.2-alpine docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 2. 准备docker-compose文件docker-compose.yml# # WARNING: Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. # name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:3001 depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache env_file: - .env restart: always redis: container_name: immich_redis image: docker.io/redis:7.2-alpine healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data healthcheck: test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 interval: 5m start_interval: 30s start_period: 5m command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"] restart: always volumes: model-cache:.env# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=./library # The location where your database files are stored DB_DATA_LOCATION=./postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List # TZ=Etc/UTC # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=v1.110.0 # Connection secret for postgres. You should change it to a random password DB_PASSWORD=postgres # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich3.启动服务docker-compose up -d4. 访问测试IP:2283参考资料Docker Compose [Recommended] | Immich【Docker项目实战】Docker环境下部署immich照片管理系统-腾讯云开发者社区-腾讯云 (tencent.com)Immich - 手机自动备份照片视频到 NAS!开源自部署私有云相册 (替代群晖谷歌) - 异次元软件下载 (iplaysoft.com)
2024年08月18日
180 阅读
0 评论
0 点赞
2024-08-18
Cloudflare Workers 搭建 Docker镜像加速服务
1.将域名托管到Cloudflare网站地址:https://dash.cloudflare.com/按指示步骤完成操作即可2.新建 workers在左侧 workers and pages,然后新建,名字随便起。没有过多的配置,直接完成!3.编辑代码点击右上角的编辑代码,进入3.1 新建 index.html如果所示,代码里面的docker.xxoo.team请替换成你自己的域名。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>镜像使用说明</title> <style> body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; padding: 0; background-color: #f0f2f5; display: flex; flex-direction: column; min-height: 100vh; } .header { background: linear-gradient(90deg, #4e54c8 0%, #8f94fb 100%); color: white; text-align: center; padding: 20px 0; } .container { flex: 1; display: flex; justify-content: center; align-items: center; padding: 20px; } .content { background: white; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); padding: 20px; max-width: 800px; /* 调整后的宽度 */ width: 100%; font-size: 16px; /* 放大字体 */ } .code-block { background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 8px; margin: 10px 0; overflow-x: auto; font-family: "Courier New", Courier, monospace; /* 保持代码块的字体 */ } .footer { background: #444; color: white; text-align: center; padding: 5px 0; /* 调低高度 */ } .footer a { color: #4caf50; text-decoration: none; } @media (max-width: 600px) { .content { padding: 10px; font-size: 14px; /* 在小屏幕上稍微减小字体 */ } } </style> </head> <body> <div class="header"> <h1>镜像使用说明</h1> </div> <div class="container"> <div class="content"> <p>要设置加速镜像服务,你可以执行下面命令:</p> <div class="code-block"> <pre> sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://docker.xxoo.team"] } EOF </pre> </div> <p>如果执行了上述命令,配置了镜像加速服务,可以直接 pull 镜像:</p> <div class="code-block"> <pre> docker pull halohub/halo:latest # 拉取 halo 镜像 </pre> </div> <p>因为Workers用量有限,在使用加速镜像服务时,你可以手动 pull 镜像然后 re-tag 之后 push 至本地镜像仓库:</p> <div class="code-block"> <pre> docker pull docker.xxoo.team/halohub/halo:latest # 拉取 halo 镜像 </pre> </div> </div> </div> <div class="footer"> <p>Powered by Cloudflare Workers</p> <p><a href="https://www.xxoo.team">www.xxoo.team</a></p> </div> </body> </html>3.2 修改 worker.jsimport HTML from './index.html'; export default { async fetch(request) { const url = new URL(request.url); const path = url.pathname; const originalHost = request.headers.get("host"); const registryHost = "registry-1.docker.io"; if (path.startsWith("/v2/")) { const headers = new Headers(request.headers); headers.set("host", registryHost); const registryUrl = `https://${registryHost}${path}`; const registryRequest = new Request(registryUrl, { method: request.method, headers: headers, body: request.body, redirect: "follow", }); const registryResponse = await fetch(registryRequest); console.log(registryResponse.status); const responseHeaders = new Headers(registryResponse.headers); responseHeaders.set("access-control-allow-origin", originalHost); responseHeaders.set("access-control-allow-headers", "Authorization"); return new Response(registryResponse.body, { status: registryResponse.status, statusText: registryResponse.statusText, headers: responseHeaders, }); } else { return new Response(HTML.replace(/{{host}}/g, originalHost), { status: 200, headers: { "content-type": "text/html" } }); } } }修改完记得保存。4.部署+绑定域名直接弹出部署,不用填任何东西,即可系统默认分配的有域名,被墙无法访问,所以只能用自己的域名才行。绑定成功需要等待几分钟,访问你的域名,如果出现如下页面就完成!参考资料运维 - 白嫖Cloudflare Workers 搭建 Docker Hub镜像加速服务| - 个人文章 - SegmentFault 思否如何使用 Cloudflare Workers 自建 Docker 镜像代理 | 小王爷 (xiaowangye.org)通过 cloudflare 白嫖个人 docker 镜像加速服务_cloudflare docker-CSDN博客
2024年08月18日
42 阅读
0 评论
0 点赞
2024-08-13
Docker 安装Nexus3
1.拉取镜像docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/sonatype/nexus3:3.70.1 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/sonatype/nexus3:3.70.1 docker.io/sonatype/nexus3:3.70.12.持久化目录配置mkdir -p /data/nexus-data chmod 777 -R /data/nexus-data3.启动docker run -d --name nexus3 -p 8081:8081 --restart always -v /data/nexus-data:/nexus-data docker.io/sonatype/nexus3:3.70.1查看日志-稍等一下,出现 Started Sonatype Nexus OSS 表示启动好了。docker logs -f nexus3024-08-13 14:20:27,770+0000 INFO [quartz-10-thread-1] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Metric aggregation' [content.usage.aggregation] state change RUNNING -> WAITING (OK) 2024-08-13 14:20:30,909+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized 2024-08-13 14:20:30,918+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized 2024-08-13 14:20:30,993+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@3942aeab{Sonatype Nexus,/,null,AVAILABLE} 2024-08-13 14:20:31,132+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@3103ceb8{HTTP/1.1, (http/1.1)}{0.0.0.0:8081} 2024-08-13 14:20:31,133+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @246168ms 2024-08-13 14:20:31,134+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - ------------------------------------------------- Started Sonatype Nexus OSS 3.70.1-024.访问测试安装完成后可访问管理平台:http://ip:8081默认管理员用户名:admin 密码:admin123,如果提示密码不对,需要到容器里面查看管理员admin密码cat /data/nexus-data/admin.password参考资料docker.io/sonatype/nexus3 项目中国可用镜像列表 | 高速可靠的 Docker 镜像资源 (aityp.com)渡渡鸟镜像同步站 (aityp.com)Docker 安装Nexus3 快速搭建Maven私有仓库 (完整详细版)-CSDN博客Download (sonatype.com)
2024年08月13日
42 阅读
0 评论
0 点赞
2024-08-06
HE Tunnel Broker:ipv4服务器增加ipv6隧道
0.背景国内包括腾讯、阿里等轻量云及弹性云服务器产品都不提供 IPv6 地址或提供地址但不提供 IPv6 网关转发支持。如阿里云 ECS,默认不支持 IPv6,但 IPv6 CIDR 分配、VPC、VNIC 绑定等均可顺利完成,唯独需配置(购买)IPv6 网关带宽才能开启完整的 IPv6 功能,此处不做评价。既然如此,我们不妨使用 HE(Hurricane Electric)的 IPv6 隧道服务(tunnelbroker),获得近乎无穷的 IPv6 地址的同时还建立了一条专用的跨洲隧道。即使在 HE IP 大量被“认证”的今天,HE ipv6 tunnel 也是不可多得的优质免费服务,既可以访问外网,也可以用于内网穿透发布内网服务。1.简介Hurricane Electric (简称:HE) 是一家位于美国的全球互联网服务提供商。该公司运营了世界上以对等数最大 IPv6 网络,同时也提供免费的 IPv6 隧道服务,其隧道服务可以追溯到 2001 年。虽然经过多年的发展 IPv6 已经相当普及,但依然还是有部分 VPS 商家由于各种各样的原因没有给 VPS 标配 IPv6 地址,有的需要加钱、有的甚至不给加钱。如果此时有访问 IPv6 网络的需求,就可以接入 HE Tunnel Broker 提供的 IPv6 隧道免费给 IPv4 VPS 主机添加公网 IPv6 地址来获得 IPv6 网络的访问能力。2.创建 Tunnel Broker IPv6 隧道注册 Tunnel Broker 账号:Hurricane Electric Free IPv6 Tunnel Broker点击左侧的Create Regular Tunnel(创建常规隧道)输入 VPS 的公网 IP 地址根据 VPS 的位置选择一个合适的节点页面拉到最下方,点击Create Tunnel(创建隧道)在 Tunnel Details 页面可以看到创建的 IPv6 隧道的详细信息,其中 Client IPv6 Address 是申请到公网 IPv6 地址。3.获取配置示例在 Tunnel Details 页面有个 Example Configuration 选项卡,在这里你可以选择合适的配置示例。就比如这里有 Debian/Ubuntu 的 interfaces 配置文件示例:只要基于 Debian 的发行版和使用 interfaces 配置文件的系统理论上都可以使用。其它不兼容的发行版则可以使用 Linux-net-tools 或 Linux-route2 示例手动输入命令。这里使用的是Linux-net-tools版本进行配置,直接输入对应的命令执行完即可。ifconfig sit0 up ifconfig sit0 inet6 tunnel ::66.220.18.42 ifconfig sit1 up ifconfig sit1 inet6 add 2001:xxxxxa6::2/64 route -A inet6 add ::/0 dev sit14.测试效果通过ip a命令可以查看到配置的对应的IP19: sit0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0 inet6 ::10.147.17.193/96 scope global valid_lft forever preferred_lft forever inet6 ::172.17.0.1/96 scope global valid_lft forever preferred_lft forever inet6 ::172.20.245.117/96 scope global valid_lft forever preferred_lft forever inet6 ::127.0.0.1/96 scope host valid_lft forever preferred_lft forever 20: sit1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000 link/sit 0.0.0.0 peer 66.220.18.42 inet6 2001:xxxx:c:3a6::2/64 scope global valid_lft forever preferred_lft forever inet6 fe80::a93:11c1/64 scope link valid_lft forever preferred_lft forever inet6 fe80::ac11:1/64 scope link valid_lft forever preferred_lft forever inet6 fe80::ac14:f575/64 scope link valid_lft forever preferred_lft foreverping测试(base) [root@aliyun vaultwarden]# ping6 2400:3200:baba::1 PING 2400:3200:baba::1(2400:3200:baba::1) 56 data bytes 64 bytes from 2400:3200:baba::1: icmp_seq=1 ttl=115 time=343 ms 64 bytes from 2400:3200:baba::1: icmp_seq=2 ttl=115 time=402 ms 64 bytes from 2400:3200:baba::1: icmp_seq=3 ttl=115 time=442 ms 64 bytes from 2400:3200:baba::1: icmp_seq=4 ttl=115 time=407 ms 64 bytes from 2400:3200:baba::1: icmp_seq=5 ttl=115 time=313 ms5.配置优先使用 IPv4 网络默认情况下 IPv6 网络优先级会高于 IPv4 ,为了防止 IPv6 隧道拖慢 VPS 的正常网速,可以设置优先使用 IPv4 网络。同时也能减轻了对 HE Tunnel Broker 节点的网络压力,合理使用宝贵的免费资源。编辑 /etc/gai.conf 文件,在末尾添加下面这行配置:precedence ::ffff:0:0/96 100一键添加命令如下:echo 'precedence ::ffff:0:0/96 100' | sudo tee -a /etc/gai.conf完事执行 curl ip.p3terx.com 命令,显示 VPS 的 IPv4 地址则代表成功。参考资料【VPS教程】Debian 12使用HE.NET配置IPV6 - Crzax的博客-Crzax的博客 (zsfirst.top)tunnelbroker注册网站申请ipv6过程 - 简书 (jianshu.com)HE Tunnel Broker 教程:IPv4 VPS 服务器免费添加公网 IPv6 地址 - P3TERX ZONE配置HE隧道服务获取无穷IPv6地址、内网穿透、外网访问 - 老E的博客 (appscross.com)
2024年08月06日
216 阅读
0 评论
0 点赞
2024-08-04
CenterOS7安装配置redis
1.安装gcc环境判断是否安装了gcc环境gcc --version如果GCC已安装,此命令将输出GCC的版本信息。如果未安装,您将看到类似于“command not found”的信息。下载安装gcc环境yum install -y gcc tcl2.下载redis下载地址: https://download.redis.io/releases/wget https://download.redis.io/releases/redis-7.2.5.tar.gz tar xzvf redis-7.2.5.tar.gz3.编译安装cd redis-7.2.5 make && make install验证是否安装成功ll /usr/local/bin/redis*4.修改启动配置文件mkdir /etc/redis cd redis-7.2.5 cp redis.conf /etc/redis/ vim /etc/redis/redis.conf常用配置# 是否以守护进程启动 默认:no daemonize no # 用于设置Redis绑定的网络接口(网卡)。如果不配置bind,默认情况下Redis监听所有可用的网卡,redis只接受来自绑定网络接口的请求。 # Redis的配置文件中一般默认有bind 127.0.0.1,只允许本地连接,如果想要被远程访问注释掉bind配置或者bind外网ip即可。 bind 192.168.124.16 # redis服务端口 默认:6379 port 6379 # 日志级别配置 默认:notice ## debug:能设置的最高的日志级别,打印所有信息,包括debug信息。 ## verbose:打印除了debug日志之外的所有日志。 ## notice:打印除了debug和verbose级别的所有日志。 ## warning:仅打印非常重要的信息。 loglevel notice # 日志文件输出路径配置 ## 该路径默认为空。可以根据自己需要把日志文件输出到指定位置。 logfile "" # 连接密码配置 默认无密码 requirepass 1234565.启动redis测试 redis-server /etc/redis/redis.conf连接测试[root@localhost redis]# redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> auth redis (error) WRONGPASS invalid username-password pair or user is disabled. 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> set k1 v1 OK 127.0.0.1:6379> get k1 "v1"开放防火墙firewall-cmd --add-port=6379/tcp --permanent firewall-cmd --reload远程连接测试redis-cli -h 192.168.124.16 -p 6379 192.168.124.16:6379> auth 123456 OK 192.168.124.16:6379> set k2 v2 OK 192.168.124.16:6379> get k2 "v2"6.配置开机启动vim /etc/systemd/system/redis.service[Unit] Description=redis-server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl start redis systemctl status redis systemctl enable redis参考资料CentOS 7下载安装Redis(超详细,亲测可行)_centos7 redis-CSDN博客Redis常用配置详解_redis配置-CSDN博客Redis 6.0 访问控制列表ACL说明(有这篇就够了)_redis6提示不支持acl-CSDN博客确定Redis每一两分钟收到一次SIGTERM的原因-腾讯云开发者社区-腾讯云 (tencent.com)
2024年08月04日
26 阅读
0 评论
0 点赞
2024-07-10
CenterOS7手动安装gitlab
1.准备工作gitlab的安装,需要依赖相关组件,主要有policycoreutils-pythonopensshpostfix实测默认的centerOS7上都已经安装了1.1 检查policycoreutils-python是否安装[root@localhost .jenkins]# rpm -qa|grep policycoreutils-python policycoreutils-python-2.5-34.el7.x86_641.2 检查openssh是否安装[root@localhost .jenkins]# rpm -qa|grep openssh openssh-clients-7.4p1-23.el7_9.x86_64 openssh-7.4p1-23.el7_9.x86_64 openssh-server-7.4p1-23.el7_9.x86_641.3 检查postfix是否安装[root@localhost .jenkins]# rpm -qa|grep postfix postfix-2.10.1-9.el7.x86_642.下载gitlab安装包从gitlab官网地址中下载:https://packages.gitlab.com/gitlab/gitlab-ce,选择适用于CentOS7的el/7版本进行下载。wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-16.6.8-ce.0.el7.x86_64.rpm/download.rpm镜像站下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-17.1.1-ce.0.el7.x86_64.rpm3.安装gitlabrpm -i gitlab-ce-17.1.1-ce.0.el7.x86_64.rpm当出现以下内容提示,说明gitlab安装成功;warning: gitlab-ce-17.1.1-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md Help us improve the installation experience, let us know how we did with a 1 minute survey: https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=17-14.修改对外暴露的IP及端口修改/etc/gitlab/gitlab.rb文件中的external_url,设置gitlab的登录地址;vim /etc/gitlab/gitlab.rb## GitLab URL ##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab ##! ##! Note: During installation/upgrades, the value of the environment variable ##! EXTERNAL_URL will be used to populate/replace this value. ##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP ##! address from AWS. For more details, see: ##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html external_url 'http://192.168.124.17:8080'重新加载配置gitlab-ctl reconfigure #重新生成相关配置文件,执行此命令时间比较长5.启动GitLab# 关闭防火墙 也可以自行开放端口 systemctl stop firewalld # 开放端口号 firewall-cmd --zone=public --add-port=8080/tcp --permanent # 重启防火墙 systemctl restart firewalld# 重启gitlab gitlab-ctl restart启动日志ok: run: alertmanager: (pid 6113) 1s ok: run: gitaly: (pid 6122) 1s ok: run: gitlab-exporter: (pid 6137) 0s ok: run: gitlab-kas: (pid 6148) 1s ok: run: gitlab-workhorse: (pid 6156) 0s ok: run: logrotate: (pid 6166) 0s ok: run: nginx: (pid 6172) 1s ok: run: node-exporter: (pid 6178) 0s ok: run: postgres-exporter: (pid 6183) 1s ok: run: postgresql: (pid 6193) 0s ok: run: prometheus: (pid 6202) 0s ok: run: puma: (pid 6212) 0s ok: run: redis: (pid 6217) 0s ok: run: redis-exporter: (pid 6224) 0s ok: run: sidekiq: (pid 6235) 0s访问测试:http://192.168.124.17:8080502问题定位:端口冲突导致的vim /etc/gitlab/gitlab.rb找到如下内容### Advanced settings # puma['listen'] = '127.0.0.1' # puma['port'] = 8080 # puma['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket' # puma['somaxconn'] = 2048修改为### Advanced settings puma['listen'] = '127.0.0.1' puma['port'] = 8008 # puma['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket' # puma['somaxconn'] = 2048重新配置启动#重新生成相关配置文件,执行此命令时间比较长 gitlab-ctl reconfigure # 重启gitlab gitlab-ctl restart再次访问测试:http://192.168.124.17:8080/6. 配置gitlab开机自动启动systemctl enable gitlab-runsvdir.service systemctl start gitlab-runsvdir.service # 关闭gitlab的自动启动命令: systemctl disable gitlab-runsvdir.service参考资料Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorcentos 7离线安装中文版GitLab - 小破孩楼主 - 博客园 (cnblogs.com)CentOS7离线搭建GitLab_在centos7上离线安装gitlab-CSDN博客linux中安装Gitlab服务器后登录报错502解决办法(图文结合)_linux安装gitlab后502-CSDN博客
2024年07月10日
27 阅读
0 评论
0 点赞
2024-07-09
CenterOS7安装java环境
1.下载安装包wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz2.解压并移动到目标路径tar xzvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz mv jdk-17.0.11+9 jdk17 mv jdk17 /software/3.配置环境变量 vim ~/.bashrcexport JAVA_HOME=/software/jdk17 export PATH=$PATH:$JAVA_HOME/bin source ~/.bashrc4.验证[root@localhost ~]# java -version openjdk version "17.0.11" 2024-04-16 OpenJDK Runtime Environment Temurin-17.0.11+9 (build 17.0.11+9) OpenJDK 64-Bit Server VM Temurin-17.0.11+9 (build 17.0.11+9, mixed mode, sharing)参考资料Index of /Adoptium/17/jdk/x64/linux/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
2024年07月09日
34 阅读
0 评论
0 点赞
2024-05-19
nginx配置详解和示例
1.nginx默认配置文件Nginx默认的配置文件是在安装目录下的 conf目录下,后续对 Nginx的使用基本上都是对此配置文件进行相应的修改,修改过nginx.conf配置文件,记得要重启Nginx服务(☆☆☆☆☆)默认的配置文件内容(其中#开头的都是被注释了的内容):#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }2.nginx配置文件配置详解nginx配置文件主要分为如下三部分2.1 全局块全局块是默认配置文件从开始到events块之间的内容。主要设置nginx整体运行的配置指令,这些指令的作用域是全局,配置案例解析#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx/logs/nginx.pid; #指定进程可以打开的最大描述符:数目 #工作模式与连接数上限 #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 #现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 worker_rlimit_nofile 65535;2.2 events块events块的指令主要影响nginx服务器和用户的网络连接,对性能影响较大。配置案例:events { #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型 #是Linux 2.6以上版本内核中的高性能网络I/O模型,linux建议epoll,如果跑在FreeBSD上面,就用kqueue模型。 #补充说明: #与apache相类,nginx针对不同的操作系统,有不同的事件模型 #A)标准事件模型 #Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll #B)高效事件模型 #Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。 #Epoll:使用于Linux内核2.6版本及以后的系统。 #/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。 #Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。 use epoll; #单个进程最大连接数(最大连接数=连接数*进程数) #根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。 worker_connections 65535; #keepalive超时时间。 keepalive_timeout 60; #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。 #分页大小可以用命令getconf PAGESIZE 取得。 #[root@web001 ~]# getconf PAGESIZE #4096 #但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。 client_header_buffer_size 4k; #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。 open_file_cache max=65535 inactive=60s; #这个是指多长时间检查一次缓存的有效信息。 #语法:open_file_cache_valid time 默认值:open_file_cache_valid 60 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息. open_file_cache_valid 80s; #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。 #语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 1 使用字段:http, server, location 这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态. open_file_cache_min_uses 1; #语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件时记录cache错误. open_file_cache_errors on; }常用到的配置案例:events { # events块开始 worker_connections 1024; #每个工作进程的最大连接数量(根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。) use epoll; # 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。 accept_mutex on; #开启网络连接的序列化(防止多个进程对连接的争抢) multi_accept on; #允许同时接收多个网络连接(默认关闭),工作进程都有能力同时接收多个新到达的网络连接 } 2.3 http块这部分是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块。下面的反向代理、动静分离、负载均衡都是在这部分中配置http 全局块:http 全局块配置的指令包括:文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。server 块:这块和虚拟主机有密切关系,从用户角度看,虚拟主机和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。每个server块也分为全局server块,以及可以同时包含多个locaton块。2.3.1 http块全局配置配置案例:#文件扩展名与文件类型映射表 include mime.types; #默认文件类型 default_type application/octet-stream; #默认编码 #charset utf-8; #设定通过nginx上传文件的大小 client_max_body_size 8m; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。 #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。 sendfile on; #开启目录列表访问,合适下载服务器,默认关闭。 autoindex on; # 负载均衡服务器组配置 upstream backend { server 127.0.0.1:8081 max_fails=2 fail_timeout=10s; server 127.0.0.1:8082 max_fails=2 fail_timeout=10s; # 可选的其他参数 # least_conn; # 使用最少连接的服务器 # ip_hash; # 根据客户端IP进行哈希,确保来自同一IP的请求总是发送到同一台服务器 # keepalive 32; # 每个worker进程保持的最大空闲连接数 }2.3.2 http块下的server块server块 必须包含在http之下。server是一切的开始,代表一个代理的出现,里边两大配置项:listen监听接口和server_name监听的地址,里边还包括了location和其它配置项,当存在server的时候,nginx获取到的请求都会去匹配这些server(匹配其中的listen和server_name)。server也可单独拆分为一个文件 在nginx下http块下引用即可location是nginx的精华,nginx就是通过拦截到的请求去对配置好的location块进行请求代理的。alias&root:将请求代理到本地的指令,也就是如果可以把请求发送到你的 硬盘里去获取资源,这个指令可以代理前端的静态资源proxy_pass:对请求进行转发重定向的rewrite:用来重写请求路径配置案例:server { listen 80; server_name localhost; location / { root html/dist; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # 反向代理+负载均衡配置 location /api/ { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_http_version 1.1; } location /upload/ { proxy_pass http://backend; } # 请求日志按天/按小时/按分钟/按秒分割 if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") { set $year $1; set $month $2; set $day $3; set $hour $4; set $minutes $5; set $seconds $6; } access_log ./logs/nginx-access_$year-$month-$day.log; # 错误日志配置 error_log ./logs/nginx-access-error.log; }3.nginx 反向代理配置通过server>location>proxy_pass属性生效:server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:8080 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_http_version 1.1; } }还可以针对单个子路径进行反向代理配置server { listen 9001; server_name localhost; location ~ /edu/ { proxy_pass http://127.0.0.1:8080 } location ~ /vod/ { proxy_pass http://127.0.0.1:8081 } }4.nginx负责均衡配置通过http块下的upstream属性进行配置实现http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream backend { server 127.0.0.1:8081 max_fails=2 fail_timeout=10s; server 127.0.0.1:8082 max_fails=2 fail_timeout=10s; # 可选的其他参数 # least_conn; # 使用最少连接的服务器 # ip_hash; # 根据客户端IP进行哈希,确保来自同一IP的请求总是发送到同一台服务器 # keepalive 32; # 每个worker进程保持的最大空闲连接数 } server { listen 80; server_name localhost; location / { root html/dist; index index.html index.htm; } location /api/ { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_http_version 1.1; } location /upload/ { proxy_pass http://backend; } } } 5.nginx 负载均衡分配服务器策略5.1 轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。upstream myserver { server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 80; server_name 127.0.0.1; location / { root html; proxy_pass http://myserver; index index.html index.htm; } }5.2 weightweight 代表权重, 默认为 1,权重越高被分配的客户端越多upstream myserver { server 127.0.0.1:8081 weight=10; server 127.0.0.1:8082 weight=10; } server { listen 80; server_name 127.0.0.1; location / { root html; proxy_pass http://myserver; index index.html index.htm; } }5.3 ip_haship_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器upstream myserver { server 127.0.0.1:8081; server 127.0.0.1:8082; ip_hash; } server { listen 80; server_name 127.0.0.1; location / { root html; proxy_pass http://myserver; index index.html index.htm; } }5.4 fair(第三方)fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。upstream myserver { server 127.0.0.1:8081; server 127.0.0.1:8082; fair; } server { listen 80; server_name 127.0.0.1; location / { root html; proxy_pass http://myserver; index index.html index.htm; } }6.nginx日志分割配置server { listen 80; server_name 127.0.0.1; location / { root html; index index.html index.htm; } # 请求日志按天/按小时/按分钟/按秒分割 if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") { set $year $1; set $month $2; set $day $3; set $hour $4; set $minutes $5; set $seconds $6; } access_log ./logs/nginx-access_$year-$month-$day.log; # 错误日志配置 error_log ./logs/nginx-access-error.log; }参考资料Nginx反向代理配置去除前缀-百度开发者中心 (baidu.com)Nginx 负载均衡演示之 upstream 参数 & location 参数 - 知乎 (zhihu.com)Nginx--upstream健康检查 - 心恩惠动 - 博客园 (cnblogs.com)nginx日志切割/分割,按天生成&定期删除日志_nginx 日志按天切割-CSDN博客nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全-CSDN博客Nginx——访问日志、错误日志、日志文件切割_nginx错误日志文件太大了怎么办-CSDN博客一文理清nginx中的location配置(系列一) - 知乎 (zhihu.com)全网最全最完整Nginx 配置文件nginx.conf中文详解-CSDN博客nginx 配置相关详解_nginx 配置详解-CSDN博客Nginx配置——反向代理_nginx反向代理-CSDN博客
2024年05月19日
54 阅读
0 评论
0 点赞
2024-05-16
docker快速部署Redis
下载镜像docker pull redis创建配置文件mkdir -p /data/redis/data ## 创建文件 vim /data/redis/redis.conf# 配置文件内容 appendonly yes protected-mode no bind 0.0.0.0 requirepass 密码命令功能appendonly yes启动Redis持久化功能 (默认 no , 所有信息都存储在内存 [重启丢失] 。 设置为 yes , 将存储在硬盘 [重启还在])protected-mode no关闭protected-mode模式,此时外部网络可以直接访问 (docker貌似自动开启了)bind 0.0.0.0设置所有IP都可以访问 (docker貌似自动开启了)requirepass 密码设置密码创建Redis容器并启动docker run \ --name redis \ -p 6379:6379 \ --restart unless-stopped \ -v /data/redis/data:/data \ -v /data/redis/redis.conf:/etc/redis/redis.conf \ -d redis \ redis-server /etc/redis/redis.conf进入Redis容器测试[root@centeros7 redis]# docker exec -it redis /bin/bash root@8b4424c8a4e8:/data# redis-cli 127.0.0.1:6379> auth redis OK 127.0.0.1:6379> set k1 v1 OK 127.0.0.1:6379> get k1 "v1" 127.0.0.1:6379>参考资料Docker 安装 Redis 容器 (完整详细版)_docker redis-CSDN博客Docker 安装 Redis - 犬小哈教程 (quanxiaoha.com)
2024年05月16日
28 阅读
0 评论
0 点赞
2024-05-15
docker快速部署Minio 分布式存储
1. 什么是 MinIO?MinIO 是一个开源的对象存储服务器。这意味着它允许你在互联网上存储大量数据,比如文件、图片、视频等,而不需要依赖传统的文件系统。MinIO 的特点在于它非常灵活、易于使用,同时也非常强大,可以在你的应用程序中方便地集成。2. 为什么使用 MinIO?可伸缩性和性能: MinIO 允许你在需要时轻松地扩展存储容量,无需中断服务。它具有出色的性能,可以处理大量的并发读取和写入请求。开源和自由: MinIO 是开源软件,遵循 Apache License 2.0 许可证,这意味着你可以自由地使用、修改和分发它。容器化部署: MinIO 提供了容器化部署的支持,可以在各种平台上快速部署和运行,包括本地开发机、云服务器和容器编排环境(如 Docker)。兼容性: MinIO 提供了 S3 兼容的 API,这意味着它可以与任何兼容 Amazon S3 的应用程序无缝集成,为你的应用程序提供强大的对象存储能力。易用性: MinIO 的配置和管理非常简单,它提供了直观的Web控制台和命令行工具,帮助你方便地管理存储桶和对象。总的来说,MinIO 是一个灵活、高性能、易用且开源的对象存储解决方案,适用于各种规模的应用程序,特别是那些需要大规模数据存储和访问的项目。3. Docker 搭建 Minio 服务3.1 下载 Minio 镜像docker pull minio/minio3.2 新建数据挂载目录mkdir /data/minio/3.3 运行 Docker Minio 容器docker run -d \ -p 9000:9000 \ -p 9090:9090 \ --name minio \ -v /data/minio:/data \ -e "MINIO_ROOT_USER=dockerminio" \ -e "MINIO_ROOT_PASSWORD=dockerminio" \ minio/minio server /data --console-address ":9090"3.4 访问 Minio 控制台访问:http://192.168.124.10:9090,输入账号密码登录3.5 新建一个 Bucket 桶点击 Create a Bucket 创建一个 Bucket 桶,用于存储图片,输入 Bucket Name, 测试将其命名为 testbucket, 然后点击 Create Bucket 按钮,创建成功后,在 Buckets 列表中就可以看到刚刚新建的桶了:3.6. 设置 Bucket 为公共读因为我们上传的图片需要被公网访问到,所以,还需要设置 Bucket 为公共读,默认为 Private 私有。点击想要设置的桶,然后编辑 Access Policy,将 Access Policy 选项选择为 Public 公共读,点击 Set 设置按钮,设置成功后,就可以看到 Access Policy 一栏变更为 Public 了。3.7 上传一张图片测试访问图片直链:http://192.168.124.10:9000/testbucket/image-20240515200522049.png参考资料Docker部署Minio_docker 部署minio-CSDN博客Docker 安装 Minio 分布式存储(图文教程) - 犬小哈教程 (quanxiaoha.com)MinIO Object Storage for Container — MinIO Object Storage for Container
2024年05月15日
55 阅读
0 评论
0 点赞
2024-05-12
docker快速部署rabbitmq
拉取镜像docker pull rabbitmq:management启动rabbitMQ-简单版docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management访问http://192.168.124.10:15672/#/ (换成自己服务器的IP)启动rabbitMQ-复杂版-设置账户密码docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq rabbitmq:management访问http://192.168.124.10:15672/#/ (换成自己服务器的IP)参考资料Docker系列之RabbitMQ安装部署教程-腾讯云开发者社区-腾讯云 (tencent.com)
2024年05月12日
44 阅读
0 评论
0 点赞
2024-05-10
docker快速部署nacos
注意Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。如果运行在不可信的网络环境或者有强鉴权诉求,请参考官方简单实现做进行自定义插件开发。1.单机模式 DerbyDocker 拉取镜像docker pull nacos/nacos-server启动nacos# 不开启鉴权 docker run -d \ --name nacos \ -p 8848:8848 -p 9848:9848 \ -e MODE=standalone \ nacos/nacos-server访问页面:http://192.168.124.10:8848/nacos/2.单机模式mysql+宿主机配置文件映射启动Docker 拉取镜像docker pull nacos/nacos-servermysql中创建nacos所需的表mysql中新建一个库,名字可自定义,这里就用nacos从github中找到创建表的文件,在nacos-config库中执行,创建所需的表创建配置文件的保存目录mkdir -p /data/nacos/logs/ #新建logs目录 mkdir -p /data/nacos/conf/ #新建conf目录将nacos里面的文件拷贝出到挂载目录中# 启动容器 docker run -p 8848:8848 --name nacos -d nacos/nacos-server# 复制文件 docker cp nacos:/home/nacos/logs/ /data/nacos/ docker cp nacos:/home/nacos/conf/ /data/nacos/# 删除并关闭容器 docker rm -f nacos再次启动nacosdocker run -d \ --name nacos \ -p 8848:8848 -p 9848:9848 -p 9849:9849 \ --privileged=true \ -e MODE=standalone \ -v /data/nacos/logs/:/home/nacos/logs/ \ -v /data/nacos/conf/:/home/nacos/conf/ \ nacos/nacos-server修改配置文件-application.properties# 在宿主机中修改application.properties文件 vim /data/nacos/conf/application.propertiesspring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.124.10:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=nacos db.password=nacos访问页面:http://192.168.124.10:8848/nacos/3.开启登录验证修改配置文件-application.properties# 在宿主机中修改application.properties文件 vim /data/nacos/conf/application.properties# 开启登录验证 nacos.core.auth.enabled=true nacos.core.auth.server.identity.key=serverIdentity nacos.core.auth.server.identity.value=security # 自定义指定生成JWT的密钥,使用BASE64进行编码,编码前的key长度必须不小于32个字符 nacos.core.auth.plugin.nacos.token.secret.key=NzRmNzRiMGE3OTk5M2ZmOGQyOThhYzgwYWEyZjk4M2MxZTBlMjIyN2YyNGIwOWQzNGQwNGNiYjNiODRlYzQ4ZQ==nacos.core.auth.plugin.nacos.token.secret.key生成步骤:1、使用openssl rand -hex 32获取密钥值[root@centeros7 docker-test]# openssl rand -hex 32 74f74b0a79993ff8d298ac80aa2f983c1e0e2227f24b09d34d04cbb3b84ec48e2、将密钥值再进行base编码访问:https://base64.us/,输入密钥进行base64编码NzRmNzRiMGE3OTk5M2ZmOGQyOThhYzgwYWEyZjk4M2MxZTBlMjIyN2YyNGIwOWQzNGQwNGNiYjNiODRlYzQ4ZQ==参考资料Nacos部署(三)Docker部署Nacos2.3单机环境_nacos 2.3.2镜像-CSDN博客如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程-腾讯云开发者社区-腾讯云 (tencent.com)
2024年05月10日
61 阅读
0 评论
0 点赞
2024-04-17
Docker日志大小限制配置
维护测试环境的时候发现磁盘使用达到100%从而导致服务异常,排查磁盘占用原因发现是docker的累计日志占用过大的,因此查阅相关资料进行配置维护并记录。1.背景知识Docker 是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,并发布到任何流行的 Linux 或 Windows 机器上。由于 Docker 提供了隔离应用和底层系统的抽象层,因此应用可以在各种环境中一致地运行。然而,在运行 Docker 容器时,会产生大量日志,如果不加以管理,可能会占满主机的存储空间。Docker 默认使用 json-file 作为其日志驱动,但并未设置日志文件的大小上限,也就是说,如果不进行额外配置,Docker 日志会持续增长,直到耗尽所有可用的磁盘空间。2.具体配置方法方法一:使用 —log-opt 参数在启动容器时,可以使用 --log-opt 参数设置日志驱动程序的选项。通过该参数,我们可以限制容器日志的大小。示例命令:docker run -d --name example-container --log-opt max-size=500m --log-opt max-file=3 nginx:latestmax-size=500m:限制单个日志文件的最大大小为 500MB。max-file=3:限制日志文件的数量为 3 个。当日志文件达到 500MB 时,Docker 会自动轮换日志文件,保留最新的 3 个日志文件。日志json-file记录驱动程序支持以下日志记录选项:选项描述示例值max-size滚动之前日志的最大大小。一个正整数加上表示测量单位的修饰符(k、m或g)。默认为 -1(无限制)。--log-opt max-size=10mmax-file可以存在的日志文件的最大数量。如果滚动日志会产生多余的文件,则最旧的文件将被删除。仅当也设置时才有效。max-size正整数。默认为 1。--log-opt max-file=3labels启动 Docker 守护进程时适用。该守护进程接受的与日志记录相关的标签的逗号分隔列表。用于高级日志标记选项。--log-opt labels=production_status,geolabels-regex与 类似并兼容labels。用于匹配与日志记录相关的标签的正则表达式。用于高级日志标记选项。--log-opt labels-regex=xxxxxenv启动 Docker 守护进程时适用。该守护进程接受的与日志记录相关的环境变量的逗号分隔列表。用于高级日志标记选项。--log-opt env=os,customerenv-regex与 类似并兼容env。用于匹配与日志记录相关的环境变量的正则表达式。用于高级日志标记选项。--log-opt env-regex=^xxxxxcompress切换旋转日志的压缩。默认为disabled.--log-opt compress=true方法二:修改 Docker daemon 配置文件可以修改 Docker daemon 配置文件为所有容器设置默认的日志大小限制。配置文件的位置根据您的操作系统而异Ubuntu 和 Debian:/etc/docker/daemon.jsonCentOS:/etc/sysconfig/docker示例配置:{ "log-driver": "json-file", "log-opts": { "max-size": "500m", "max-file": "3" } }保存并关闭配置文件后,需要重启 Docker 服务以使更改生效。现在,所有新启动的容器都将遵循配置文件中定义的日志大小限制。$\color{red}{注意:该配置只对新容器生效,已经创建了的容器不生效,需要重新删除后再创建!!!}$systemctl restart docker参考资料Docker 控制容器日志大小的方法 - 知乎 (zhihu.com)限制 Docker 日志大小:配置与实践-百度开发者中心 (baidu.com)docker容器日志大小限制-CSDN博客
2024年04月17日
101 阅读
0 评论
0 点赞
2024-03-21
SSH客户端登录会话避免超时设置
1.背景通常默认公有云上的ECS远程连接,很容易断开,当你有什么事情被打断或者去操作别的机器同步做点其他事情,你会发现你SSH客户端登录窗口经常会断开掉,非常烦人,经常要重新登录。而且这时候终端会卡在那里,十分的不方便。所以在网上找了几个配置SSH的方法,能保证连接能够长时间不断开。 方法有两种,一般配置一种就可以。2.配置方式2.1 客户端配置$ vim ~/.ssh/config #添加如下内容 Host * ServerAliveInterval 60 ServerAliveCountMa 30说明:本地SSH Client每隔60s向Server端SSHD发送 keep-alive 包,如果发送30次, Server端还无回应则断开连接。2.2 服务端配置vim /etc/ssh/sshd_config然后找到下面两项:ClientAliveInterval 60 ClientAliveCountMax 30这两项默认可能是注释掉的,去掉#,然后如上设置.说明:ClientAliveInterval: 这个其实就是SSH Server与Client的心跳超时时间,也就是说,当客户端没有指令过来,Server间隔ClientAliveInterval的时间(单位秒)会发一个空包到Client来维持心跳,60表示每分钟发送一次,然后客户端响应,这样就保持长连接了保证Session有效, 默认是0, 不发送;ClientAliveCountMax:当心跳包发送失败时重试的次数,比如现在我们设置成了30,如果Server向Client连续发30次心跳包都失败了,就会断开这个session连接。参考资料保持SSH连接持续不断的配置方法-腾讯云开发者社区-腾讯云 (tencent.com)配置SSH服务远程连接空闲超时退出时间(包括SSH无法登录、登录缓慢)-腾讯云开发者社区-腾讯云 (tencent.com)
2024年03月21日
19 阅读
0 评论
0 点赞
2023-11-29
移动光猫获取超级密码&开启公网ipv6
1.移动光猫获取超级密码本人采用的光猫型号:烽火吉比特HG6145F;所在地区:广东免责声明:本文仅供学习交流使用,由于本文所导致的光猫任何损坏,以及造成的利益损失,作者概不承担任何责任继续阅读本文即代表同意并充分且正确理解免责声明。1.1 获取光猫MAC地址方法一:直接看光猫的背面看到这串MAC号,把它记下来,比如说68-9A-21-27-53-60,并且把所有横杠删掉,就变成了689A21275360方法二:第一种方法找不到的情况打开cmd(Windows)或者 Terminal终端(macOS)、输入:arp -a并回车,对话框会显示一堆东西,你只需要找到192.168.1.1所对应的那一串接口: 192.168.1.3 --- 0x9 Internet 地址 物理地址 类型 192.168.1.1 68-9a-21-27-53-60 动态 192.168.1.4 5c-c9-99-16-e2-49 动态 192.168.1.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 227.44.184.39 01-00-5e-2c-b8-27 静态 229.241.198.220 01-00-5e-71-c6-dc 静态 231.0.254.114 01-00-5e-00-fe-72 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态这里面,你只需要看到第一行192.168.1.1,并且把 68-9a-21-27-53-60 记下来,并删除-将对应的字母变成大写即可1.2 开启Telnet1、在浏览器中输入http:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1&key=2、把你刚刚编辑过的MAC加到这堆东西后面,就变成了http:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1&key=54E0052A4F203、回车此时,你应该看到“telnet开启”1.3 获取超级密码打开cmd(Windows)或者 Terminal终端(macOS)输入telnet 192.168.1.1 如果提示命令不存在需要去控制面板-程序-启动或关闭windows功能启动该命令然后,在login:后面输入admin,回车,对话框会提示你输入密码在Password:后面输入Fh@加上你获取的MAC的后6位,比如说我这里就是Fh@275360这时,对话框会出现一个#(none) login: admin Password: #然后依次输入load_cli factory show admin_name show admin_pwd对话框会显示#load_cli factory Config\factorydir# show admin_name Success! admin_name=CMCCAdmin Config\factorydir# show admin_pwd Success! admin_pwd=aDm8H%MdA里面admin_name=后面的CMCCAdmin就是超级账户名,admin_pwd=后面的aDm8H%MdA就是超级密码。访问192.168.1.1,把账户名和密码输进去,就进入管理员模式啦!2.移动光猫开启公网IPV6点击“网络”→“宽带设置”→ “网络连接”,找到业务类型为上网的连接名称,将IP模式该为IPV4&IPV6,并开启NPTv6,下面的端口绑定不确定需不需要可以自己摸索尝试.配置上IPV6信息的获取前缀、获取前缀方式、获取地址方式,如下图所示然后,在网络-LAN侧地址配置-IPv6配置启动DHCPv6服务最后,重启光猫,连接WIFI或者插上网线看新获取到的IP地址是否包含IPv6地址:PS C:\Users\jupiter> ipconfig Windows IP 配置 无线局域网适配器 WLAN: 连接特定的 DNS 后缀 . . . . . . . : IPv6 地址 . . . . . . . . . . . . : 2409:8a55:89a:e0f0::2 本地链接 IPv6 地址. . . . . . . . : fe80::57a8:f619:5256:9c90%9 IPv4 地址 . . . . . . . . . . . . : 192.168.1.3 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : fe80::6a9a:21ff:fe27:5360%9 192.168.1.1也可再访问一下[IPv6 测试 (test-ipv6.com)](http://test-ipv6.com/)进行测试:参考资料2023年移动光猫获取超级密码中国移动光猫CMCC H2-3启用IPv6
2023年11月29日
4,356 阅读
0 评论
0 点赞
1
2
...
7