ingress跨域报错No 'Access-Control-Allow-Origin' header is present on the requested resource
跨域报错
报错分析
源站 origin:https://nfc-h5-test.seencom.com
目的站点:https://nfc-test.seencom,com/client/user/upload_file
报错: No 'Access-Control-Allow-Origin' header is present on the requested resource. 源站的请求头中没有添加 'Access-Control-Allow-Origin' 域名白名单。
因此要在 目的站点 添加跨域请求允许 “源站域名” 的相关策略。
解决措施只需要在目的 ingress 的资源对象中添加注释:
1234567annotations: nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-origin: "*" nginx.ingress.kubernetes.io/ ...
RocketMQ 单节点单副本(Local模式部署)
RocketMQ 部署方式Apache RocketMQ 5.0 版本完成基本消息收发,包括 NameServer、Broker、Proxy 组件。 在 5.0 版本中 Proxy 和 Broker 根据实际诉求可以分为 Local 模式和 Cluster 模式,一般情况下如果没有特殊需求,或者遵循从早期版本平滑升级的思路,可以选用 Local 模式。
在 Local 模式下,Broker 和 Proxy 是同进程部署,只是在原有 Broker 的配置基础上新增 Proxy 的简易配置就可以运行。
在 Cluster 模式下,Broker 和 Proxy 分别部署,即在原有的集群基础上,额外再部署 Proxy 即可。
部署 Local 模式-单节点单副本由于 Local 模式下 Proxy 和 Broker 是同进程部署,Proxy本身无状态,因此主要的集群配置仍然以 Broker 为基础进行即可。
警告:这种方式风险较大,因为 Broker 只有一个节点,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用, 可以用于本地测试。
本地环境检查查看操作系统及 ...
Prometheus监控RabbitMQ
RabbitMQ 集群虽然官方提供了管理 UI 来监控集群状态,但是从设计上来说这种方式并不是特别方便。
RabbitMQ 从 3.8.0 版本开始就内置了对 Prometheus 和 Grafana 的支持。实质上是通过 rabbitmq_prometheus 这个插件来获取对 Prometheus 度量标准的支持,该插件是通过专用的 TCP 端口来暴露相关 RabbitMQ 指标的,默认端口是 15692。这些度量标准提供了对 RabbitMQ 节点状态和运行时的状态的支持。
查看本地环境查看本地操作系统及内核版本:
123456# $ cat /etc/redhat-release Rocky Linux release 8.8 (Green Obsidian)$ uname -aLinux rabbit1 4.18.0-425.3.1.el8.x86_64 #1 SMP Wed Nov 9 20:13:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
查看三节点 rabbitmq 集群及 erlang 版本:
12345678910$ rpm ...
RabbitMQ普通集群模式部署
RabbitMQ 普通集群模式RabbitMQ 集群是一个或 多个节点,每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。
RabbitMQ 集群是在多台机器上启动多个 rabbitmq 实例,每个机器启动一个。
但是你创建的 queue,只会放在一个 rabbtimq 实例上,但是每个实例都同步 queue 的元数据(存放含queue数据的真正实例位置)。消费的时候,实际上如果连接到了另外一个实例,那么那个实例会从 queue 所在实例上拉取数据过来。
RabbitMQ 集群可以通过多种方式形成:
通过在配置文件中列出群集节点以声明方式
以声明方式使用基于 DNS 的发现
以声明方式使用 AWS (EC2) 实例发现(通过插件)
声明式使用 Kubernetes 发现(通过插件)
以声明方式使用基于 Consul 的发现(通过插件)
声明式地使用基于 etcd 的发现(通过插件)
手动使用 rabbitmqctl
集群部署的核心概念1、 仲裁队列仲裁队列是 RabbitMQ 实现持久、 基于Raft共识算法的复制FIFO队列。 它从 RabbitMQ 3 ...
RabbitMQ单机模式部署
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
rabbitmq 部署有三种模式:单机模式,普通集群模式,镜像集群模式。
安装 Erlang 环境首先查看本地操作系统版本:
12345$ cat /etc/redhat-release Rocky Linux release 8.8 (Green Obsidian)$ uname -aLinux bogon 4.18.0-425.3.1.el8.x86_64 #1 SMP Wed Nov 9 20:13:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang 环境。
我们准备安装 rabbitmq 3.11.23,根据 RabbitMQ 对 Erlang 版本要求,则需要提前安装 Erlang 25.3.x 版本的语言环境。
采用 Erlang Direct Downloads from GitHub RPM 的方式来安装 Erlang 语言环境,获取 Erlang RPM:
123cd ...
K8S-1.18 Dashboard-v2.0.0并绑定ingress http简单认证
安装 K8S Dashboard v2.0.0查看 K8S 集群版本号 v1.18:
123$ kubectl versionClient Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.6", GitCommit:"8a62859e515889f07e3e3be6a1080413f17cf2c3", GitTreeState:"clean", BuildDate:"2021-04-15T03:28:42Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"18", GitVersion:&quo ...
CentOS7安装FFmpeg Plus OpenGL(GLSL) 视频编辑增强能力
1.CentOS7编译安装FFmpeg-4.3环境确认查看操作系统及内核版本号:
12345$ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)$ uname -aLinux VM-32-14-centos 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
基础依赖
RHEL/CentOS 安装企业版 Linux 附加软件包(EPEL)
安装 EPEL 附加软件包
1234yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmyum clean allyum makecache
升级操作系统及软件包版本:
1yum update -y
安装基础依赖:
12345678yum install -y \ autoconf automake \ bzip2 bz ...
如何使用docker docker-compose nginx部署php应用
如何使用docker docker-compose nginx部署php应用1.目录结构我们将使用以下目录结构进行演示:
123456789101112/data/wwwroot/app├── docker-compose.yml├── nginx│ ├── default.conf│ └── Dockerfile├── php│ └── Dockerfile└── www └── html ├── 1.txt ├── index.php └── phpinfo.php
2.创建 nginx 容器在开始之前,需要创建并启动一个 Nginx 容器来托管 PHP 应用程序。
首先,使用以下命令为项目创建一个 demo 目录:
12mkdir -p /data/wwwroot/app && cd /data/wwwroot/appvim docker-compose.yml
为 docker-compose.yml 添加内容:
12345678910version: '3'services: n ...
记录一次Jenkins(Docker版)升级版本
记录一次Jenkins(Docker版)升级版本升级前置说明Docker版本部署的 Jenkins 两种升级方式:使用 docker 部署的 Jenkins 如果要升级版本,一般有两种方式:
替换 docker container 中的 jenkins.war 包,参考:【Jenkins】如何升级Jenkins版本
找到新版本的容器镜像,重建容器。
我更倾向于使用方式2,因为方式1只是替换了容器种的 .war 包,如果容器发生重建,Jenkins 的版本将会回退,如果你在升级后又安装了新版本的插件发生版本回退有可能直接引起 Jenkins 服务异常。
本文着重说下方式2。无论使用哪种方式,操作前务必要事先备份!事先备份!事先备份!
为什么要升级 Jenkins 版本?一定是在业务上有需求,要使用某个版本的插件,当前 Jenkins 版本较低不能够满足,才会想要去升级,比如 HTTP Request Plugin
提示需要 Jenkins 版本 >= 2.282 及以上,并包括其他插件的更高版本。而我当前 Jenkins 版本为 Jenkins 2.263.1 需要升级 ...
如何定制Jenkins jnlp docker镜像
Jenkins 持续集成实战
如何定制Jenkins jnlp docker镜像为什么需要定制 jnlp 镜像?你是否有如下需求:
要在容器内使用命令行工具 wget, curl, telnet, tcpdump 等
构建制品的过程中要使用 nodejs, npm, maven, jdk 等
要在 K8S 容器中构建 docker 镜像就要使用到 kaniko 工具
需要 python3 来执行一些脚本
要使用 kubectl, helm 命令行工具发布 K8S 应用
如果你有如上需求,那么需要为你的业务环境量身定做一个 jnlp docker 镜像了。
当然也可以在流水线阶段中指定 agent 来完成不同类型的任务。
分析 jenkins/inbound-agent DockerfileGithub 地址为:Docker image for inbound Jenkins agents 从中选用 jdk11 + debian 版本的 Dockerfile,其对应的 DockerHub 地址为:Docker image for inbound Jenkins agent ...