配置Uptime Kuma固定前缀

        在做ICT集成项目时,遇到需要对现网接口进行拨测的需求。搜索后尝试使用开源的Uptime Kuma组件完成现网接口拨测。

        但该项目有个问题就是默认不支持配置固定前缀,这对现网进行请求转发会造成较大的影响。通过查看该项目的github后找到了问题的解决方案。Subfolder support (publicPath) · Issue #147 · louislam/uptime-kuma · GitHub

        解决的方案就是在Nginx上追加以下配置:

location /subpath {proxy_pass http://127.0.0.1:3001;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 X-Forwarded-Proto $scheme;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# define url prefixset $url_prefix subpath;# remove url prefix to pass to backendrewrite ^/subpath/?(.*)$ /$1 break;# redirect location headersproxy_redirect ^ /$url_prefix;proxy_redirect /dashboard /$url_prefix/dashboard;# sub filters to replace hardcoded pathsproxy_set_header Accept-Encoding "";sub_filter_last_modified on;sub_filter_once off;sub_filter_types *;sub_filter '/assets/' '/$url_prefix/assets/';sub_filter '"assets/' '"$url_prefix/assets/';sub_filter '/socket.io' '/$url_prefix/socket.io';sub_filter '/icon.svg' '/$url_prefix/icon.svg';sub_filter '/favicon.ico' '/$url_prefix/favicon.ico';sub_filter '/apple-touch-icon.png' '/$url_prefix/apple-touch-icon.png';sub_filter '/manifest.json' '/$url_prefix/manifest.json';sub_filter '/add' '/$url_prefix/add';sub_filter '/settings/' '/$url_prefix/settings/';sub_filter '"/settings' '"/$url_prefix/settings';sub_filter '/dashboard' '/$url_prefix/dashboard';sub_filter '/maintenance' '/$url_prefix/maintenance';sub_filter '/add-status-page' '/$url_prefix/add-status-page';sub_filter '/manage-status-page' '/$url_prefix/manage-status-page';sub_filter '"/status/' '"/$url_prefix/status/';sub_filter '/upload/' '/$url_prefix/upload/';sub_filter '/api/' '/$url_prefix/api/';}

        实际运行时又遇到报错:unknown directive 'sub_filter_last_modified',需要重新编译Nginx,在编译时增加--with-http_sub_module命令,具体下载和重新编译Nginx的过程不再赘述。

        最终可以达到通过固定前缀,访问Uptime Kuma项目的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

systemd指令之journalctl指令

systemd的历史由来及概述 在Linux系统的发展历程中,init进程一直是系统启动的核心。然而,这种传统的启动方式存在两个主要缺点: 启动时间长:init进程采用串行启动机制,只有在前一个进程启动完成后,才能启…

web自动化(三)鼠标操作键盘

selenuim 键盘操作 import timefrom selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from selen…

SQL语言基础特点、数据库系统

一、SQL的概述 (1) SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。 (2)SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公…

安卓h5打包系统设计

设计一个安卓H5打包系统,主要是为了将H5应用高效、便捷地转换为原生安卓应用(APK),以适应不同场景下的需求。下面是一个基本的设计框架: 1. 系统目标与需求分析 目标:实现一个用户友好的界面,使无编程基础的用户也能轻松将H5项目打包成安卓APP。需求: 支持H5项目上传与…

Leetcode秋招冲刺(专题10--12)

专题10:动态规划 题目509:斐波那契数(NO) 解题思路:动态五部曲 动态五部曲:这里我们用一个一维数组来保存递归的结果 确定dp数组以及下标的含义 dp[i]的定义为:第i个数的斐波那契数值是dp[i]…

手写数组去重

方法1-判断相邻元素 function _deleteRepeat(arr){if(!Array.isArray(arr)){throw new Error(参数必须是数组)}let res[];// 使用slice创建arr的副本&#xff0c;并排序let sortArrarr.slice().sort((a,b)>a-b);for(let i0;i<sortArr.length;i){if(isortArr.length-1||s…

韩语日常口语留学韩语旅游韩语口语柯桥语言培训

韩语每日一词打卡&#xff1a;행정적[행정적]【名词】行政 原文:나라는 항상 행정적 명령을 통해 경제운행을 조절합니다. 意思&#xff1a;国家经常通过行政命令去调节经济的运行。 【原文分解】 1、항상[항상]总是 &#xff0c;经常 2、나라[나라]国家 3、명령[명:녕]命令 …

Node.js_流Stream

Node.js 中的流&#xff08;Streams&#xff09;是一种处理读取和写入数据的抽象接口&#xff0c;它允许你以非阻塞的方式处理数据&#xff0c;这对于处理大文件或网络请求等 I/O 密集型任务非常有用。流主要分为四种类型&#xff1a;可读流&#xff08;Readable&#xff09;、…

项目2:API Hunter 细节回顾 -1

一. 接口调用 对于开发者来说&#xff0c;接口的调用应当是方便快捷的&#xff0c;而且出于安全考虑&#xff0c;通常会选择在后端调用第三方 API&#xff0c;避免在前端暴露诸如密码的敏感信息。 若采用 HTTP 调用方式&#xff1a; HttpClientRestTemplate第三方库&#xf…

cglib

ASM是一个非常高效的Java字节码操控和分析框架&#xff0c;它允许开发者在运行时或者编译时期动态地生成、改变或者分析类。ASM提供的功能强大且灵活&#xff0c;适用于诸如框架开发、代码优化、代码生成等多种场景 需求&#xff1a;用 asm 编写一个类并运行输出hello word 依…

Spring国际化多语言实现-MessageSource

1 简介 Spring MessageSource 是 Spring 框架中用于国际化&#xff08;i18n&#xff09;和本地化&#xff08;l10n&#xff09;功能的一个关键组件 MessageSource 提供了一种灵活的方式来管理多语言环境下的消息。它支持从不同的资源文件中加载消息&#xff0c;如 .propertie…

视图库对接系列(GA-T 1400)四、视图库对接系列(本级)注册

视图库对接系列(本级)注册 在之前的步骤中&#xff0c;我们已经把项目大体的架构已经写出来了。那我们就来实现注册接口。 GA-T 1400中的步骤如下&#xff1a; 这里的话&#xff0c;我们实现的简单点&#xff0c; 我们不进去鉴权&#xff0c;也就是设备或平台找我们注册的话&…

Python高速下载及安装的十大必备事项与C++联调

选择正确的版本&#xff1a; 访问Python官网&#xff08;https://www.python.org/&#xff09;下载最新稳定版本&#xff0c;目前最新稳定版本为3.12.4 避免下载并安装Python 2.x版本&#xff0c;因为它已经停止维护。 选择适合操作系统的安装包&#xff1a; 根据你的操作系…

【笔记】太久不用redis忘记怎么后台登陆了

&#xff01;首先启动虚拟机linux的centos7 2.启动finalshell 我的redis启动在根目录用 redis-server redis.conf --启动 systemctl status redis --查看redis状态 是否active redis-cli -h centos的ip地址 -p 你要用的redis端口号&#xff08;默认为6379&#xff09; -a 你…

uboo对内存操作读写命令的基本使用

内存操作命令 直接对DRAM进行读写的操作,uboot常用的内存操作命令有md,nm,mm,mw,cp和cmp. md命令: 显示内存值 # md md - memory display Usage: md [.b, .w, .l, .q] address [# of objects] b:1个字节 byte w:2个字节 world l:4个字节 long of objects 以word 为单位的1…

MySQL:保护数据库

保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户&#xff0c;所以不必考虑安全问题。但实际业务中数据库大多放在服务器里&#xff0c;你必须妥善处理好…

C语言实现 人生重生模拟器游戏

目录 实现一个简化版的人生重开模拟器 1.菜单函数 2.game函数 3.幼年时期&#xff08;even函数&#xff09; 4.壮年时期&#xff08;Juvenile函数&#xff09; 课余时间实现的小游戏 实现一个简化版的人生重开模拟器 1.菜单函数 void menu() {printf("---------------…

版本控制系统:Git 纯应用(持续更新);

基本操作 ctrl上行键&#xff1a;上次代码 本地仓库&#xff1a;Git init 新建文件&#xff1a;touch xxxx.xxx 查看状态&#xff1a;Git status 文件从工作区——暂存区&#xff1a;Git add ./文件名(.是通配符代表所有) 暂存区——仓库&#xff1a;Git commit -m &…

Eureka与Docker的完美融合:容器化部署全攻略

Eureka与Docker的完美融合&#xff1a;容器化部署全攻略 在微服务架构中&#xff0c;服务发现是实现服务间通信的关键。Eureka作为Netflix开源的服务发现框架&#xff0c;与Docker容器化技术的结合&#xff0c;为构建灵活、可扩展的微服务应用提供了强大支持。然而&#xff0c…

代码随想录第四十六天 | 322. 零钱兑换,279.完全平方数,139.单词拆分

322. 零钱兑换 看完想法&#xff1a;此处是求最小值&#xff0c;所以递推公式中含Min&#xff0c;即dp[j] min(d[[j], dp[j - coins[i]] 1)&#xff0c;初始化都为INT_MAX&#xff0c;且dp[0] 0。由于不是求组合数&#xff0c;所以物品和背包重量的遍历先后顺序都是可以的…