Nginx完美代理Portainer

Caddy 反向代理 Portainer 想必看到这篇文章的人不是出现了 Not Found 就是出现了 send http request to https 如果按照官网给的下面这句代码来反向代理端口,完全没办法成功,我没搞懂这个8000端口是干嘛的,但是明显没P用,9443 端口 Portainer 又自己套了 SSL 证书也没办法直接反向代理 docker run -d -p 8000:8000 -p 9443:9443 --na... 阅读详情
AI摘要

本文介绍如何在生产环境中使用Nginx代理Portainer,解决仅开放80端口的问题,实现微服务项目中DockerSwarm集群的统一管理。通过详细配置步骤,确保内外部均可访问Portainer,同时保持服务稳定性和安全性。

Nginx完美代理Portainer

背景

微服务项目中用到了Portainer来作为Docker Swarm集群的管理工具。

由于生产环境IT管理员仅允许开放80端口,因此希望可以使用Nginx进行代理,与业务公用一个80端口号

配置

修改/etc/nginx/conf.d/default.conf

# WebSocket
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

# 限制客户端文件上传最大大小
client_max_body_size 4096M;

#docker版Nginx需要增加此配置
#resolver 127.0.0.11 valid=30s;

#http节点中可以添加多个server节点
server{
    listen 80;
    # 配置真实域名
    server_name _;
    keepalive_timeout   70;

    location ~ "^/cloud/portainer(/?.*)" {
       # 因为nginx和nacos在同一个docker网络,这里使用服务名进行访问
       # 你可以改成自己的IP地址
        proxy_pass http://portainer:9000$1$is_args$args;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
    # 错误页面
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

测试

访问 http://192.168.0.2/cloud/portainer/ 正常,注意最后面的斜杠不能省略

在 portainer 里 nginx 反向代理 KKFileView 预览服务 此时通过浏览器请求http://ip/preview/,那么实际访问的地址就是 http://ip:端口/preview/,会将匹配路径/preview/一起加过去。proxy_pass最后面没有斜杠,匹配路径有斜杠(/preview/)KK_BASE_URL: # 提供预览服务的地址,即nginx代理地址。在 portainer 里配置 nginx 和 KKFileView。KK_CONTEXT_PATH: #即nginx代理地址的后缀名。2.nginx 添加代理地址配置。这里nginx配置时的小技巧。 阅读详情

相关推荐

Nginx高效代理Portainer:Docker Swarm集群管理的端口优化方案

本文详细介绍了如何使用Nginx高效代理Portainer,优化Docker Swarm集群管理的端口配置。通过反向代理、WebSocket支持、文件上传限制调整等实用技巧,提升安全性和性能,同时解决端口冲突问题。适用于需要安全高效管理Docker集群的运维人员和开发者。

weixin_28829339的博客 405

Nginx代理Partainer

Nginx代理 Partainer

何忆清风 3万+

Docker集群管理神器Portainer如何通过Nginx反向代理实现80端口访问(附完整配置)

本文详细介绍了如何通过Nginx反向代理实现Portainer的80端口访问,解决Docker集群管理中的端口限制问题。内容涵盖基础配置、WebSocket处理、安全加固及HTTPS加密等实战技巧,适用于Docker Swarm等生产环境部署,帮助运维团队高效管理容器集群。

weixin_28842269的博客 195

nginx 代理 portainer 报 Unable to retrieve server settings and status

nginx 代理 portainer

Copy_ing的博客 2177

中小企业AI工作站搭建实战:Ubuntu+Docker本地部署指南

AI工作站是面向中小企业的轻量级本地AI基础设施,其核心在于利用消费级硬件构建稳定、合规、可运维的推理环境。原理上依赖GPU加速、容器化封装与操作系统深度适配,技术价值体现在数据不出内网、长期使用成本可控、响应延迟确定性强。典型应用场景包括工业质检、法律文书分析、跨境电商智能客服等对隐私与实时性敏感的业务。本文聚焦Ubuntu 22.04 LTS系统下Docker容器化部署路径,覆盖RTX 4090/6000 Ada硬件选型、NVIDIA驱动与CUDA栈配置、Ollama与Dify生产级联调等关键环节,提供

z466459262的专栏 397

从零搭建专属漏洞靶场:Docker部署实战与主流靶场推荐

漏洞靶场是网络安全领域用于模拟真实攻击环境、进行安全技术实践的核心基础设施。其核心原理在于构建一个包含已知安全漏洞的隔离环境,允许安全从业者与学习者在其中合法、安全地进行渗透测试、漏洞利用与防御演练,而无需承担法律风险或造成实际损害。这项技术的价值在于为安全技能的提升提供了可控、可复现的实践平台,是学习OWASP Top 10漏洞、掌握渗透测试流程、进行红蓝对抗演练的必备工具。其应用场景广泛,覆盖了从个人技能学习、团队内部培训到企业级安全竞赛等多个层面。随着容器化技术的普及,基于Docker的部署方案因其轻

578

Nginx高效代理Portainer实现Docker Swarm集群管理

本文详细介绍了如何利用Nginx反向代理高效、安全地访问部署在Docker Swarm集群中的Portainer管理界面。通过子路径模式(如/cloud/portainer)统一服务入口,解决了生产环境端口限制问题,并重点讲解了支持WebSocket和文件上传的关键配置,以及启用HTTPS、基础认证等安全加固措施,实现集群管理的统一网关与访问控制。

u6v7w8x的博客 799

NAS上部署Hermes Agent与WebUI的Docker实战指南

Hermes Agent是一种面向本地化运行的AI智能体调度框架,其核心价值在于将提示工程、工具调用、记忆管理与状态追踪封装为可编排、可观察的轻量级运行时。依托Docker容器化技术,它能有效隔离Python依赖冲突、规避NAS系统环境限制,并实现跨平台一致部署;结合WebUI,提供可视化调试、执行轨迹追踪与实时响应监控能力。该方案特别适用于家庭私有化AI场景,如日程管理、本地视频分析、语音助手等低延迟非实时任务,在资源受限的ARM架构NAS(如群晖DS923+)上已验证稳定运行。本文聚焦Docker+do

weixin_34242819的博客 635

Astroluma应用集成教程:如何连接Portainer、Proxmox等15+服务

Astroluma是一款功能强大的自托管家庭实验室仪表板,专为管理日常任务和服务而设计。这款用户友好的仪表板支持超过15种流行服务的集成,让您能够在一个统一的界面中集中管理Portainer、Proxmox、TrueNAS Scale等关键基础设施。通过这篇完整的Astroluma应用集成教程,您将学会如何快速配置和连接各种服务,打造属于自己的个性化管理面板。 ## 🚀 为什么选择Astrol

gitblog_01173的博客 483

Aruba CX交换机VSX配置实战:如何避免脑裂导致的网络中断(含详细命令)

本文提供Aruba CX交换机VSX配置的实战指南,重点讲解如何通过构建高可靠的ISL链路聚合与独立隔离的Keepalive链路,有效避免网络脑裂风险。文章包含详细的命令步骤,从基础配置到高级故障排查,帮助网络工程师构建坚如磐石的高可用核心网络,确保业务流量零中断。

weixin_29231725的博客 172

STM32F4三重ADC+DMA双缓冲实战:用CubeMX搞定同步采样,告别数据覆盖烦恼

本文详细介绍了STM32F4三重ADC与DMA双缓冲技术的实战应用,通过CubeMX配置实现同步采样,解决数据覆盖问题。内容涵盖硬件架构解析、CubeMX工程配置、双缓冲实现技巧及调试优化方法,适用于电机控制、电力监测等需要高精度多通道信号采集的场景。

weixin_30627341的博客 357

避坑指南:Portainer汉化后界面错乱或功能失效?可能是你没注意这几点

本文深入解析Portainer汉化过程中常见的界面错乱和功能失效问题,提供从原理到实践的完整解决方案。涵盖Docker环境下的汉化技术细节、常见问题排查及最佳实践,帮助用户避免版本兼容性和CSS样式适配等关键问题,确保汉化后的Portainer稳定运行。

crhwkrhpunow61910的博客 406

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4171

基于Docker Compose与Nginx构建轻量级私有PaaS平台实战指南

容器化技术通过将应用及其依赖打包成标准单元,实现了环境一致性与快速部署。其核心原理是利用操作系统级虚拟化,在共享内核上隔离进程与资源。Docker作为主流容器引擎,结合Docker Compose这一编排工具,能够以声明式YAML文件定义和管理多容器应用,极大简化了开发与运维流程。这种技术组合为中小规模项目提供了轻量、可移植的解决方案,尤其适合Web服务部署场景。通过整合Nginx反向代理与Let‘s Encrypt自动化SSL证书管理,可以构建出功能集中的私有应用平台。本文以Argo-X-Containe

weixin_30475039的博客 232

在 Ansys Mechanical 中使用“螺栓工具”插件自动生成螺栓

在有限元分析 (FEA) 中,高效创建螺栓连接对于确保机械装配的结构完整性和性能至关重要。螺栓是连接组件不可或缺的一部分,它们在负载下的精确建模会影响整个系统。快速高效的螺栓建模使工程师能够快速优化设计,满足紧迫的期限,并通过为其他关键设计任务释放资源来提高整体生产力。此外,螺栓建模的精度可以最大限度地降低模型创建过程中出错的风险,这对于获得可靠和准确的分析结果至关重要。因此,在 FEA 中快速且无错误地创建螺栓连接对于高效、可靠和成功的工程结果至关重要。

jkh920184196的博客 3101

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理)

Logisim 原码一位乘法器设计 图解及代码(计算机组成原理) 包对

醉蕤的博客 4376

保姆级教程:用Docker Compose在CentOS 7.6上部署Portainer CE 2.18.4(附离线包下载)

本文提供了一份详细的CentOS 7.6环境下使用Docker Compose部署Portainer CE 2.18.4的保姆级教程,涵盖环境准备、Docker安装、Portainer部署及离线包下载等关键步骤,特别针对国内网络环境和初学者常见问题提供解决方案。

weixin_42524708的博客 235

Verilog使用inout信号的方法

在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号)。比如,IIC总线中的SDA信号就是一个双向信号,QSPI Flash的四线操作的时候四根信号线均为双向信号。在Verilog中用关键字inout定义双向信号,这里总结一下双向信号的处理方法。  实际上,双向信号的本质是由一个三态门组成的,三态门...

qq_41687938的博客 1万+

把树莓派变成家庭服务器:用Docker部署你的第一个应用(Nextcloud/Pi-hole)

本文详细介绍了如何将树莓派打造成家庭服务器,通过Docker容器技术轻松部署Nextcloud个人云盘和Pi-hole广告过滤系统。从基础配置到性能优化,再到高级维护技巧,帮助用户充分利用树莓派的低功耗特性,提升智能家居体验。

weixin_30335575的博客 431

JVM高频面试基本问题与知识点整理

JVM高频面试基本问题与知识点整理

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 87万+

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

SMFA(自调制特征聚合模块): SMFA模块用于协同建模局部和非局部信息,它分为两个分支:一个是EASA(Efficient Approximation of Self-Attention,简化的自注意力分支),用于捕获非局部信息;另一个是LDE(Local Detail Estimation,局部细节估计分支),用于捕获局部细节。EASA通过对输入特征进行下采样,然后利用全局特征的方差进行调制,再与原始特征进行聚合,提取非局部结构信息。LDE分支则通过卷积操作提取输入特征中的高频局部信息。

qq_64693987的博客 2208

基于Docker Compose的轻量级PaaS平台部署与运维实战

容器化技术通过将应用及其依赖打包成标准镜像,实现了环境一致性与快速部署。其核心原理在于利用操作系统级虚拟化,为应用提供隔离的运行环境。这项技术的核心价值在于简化了开发、测试与生产环境的一致性难题,显著提升了软件交付效率与可移植性。在应用场景上,它尤其适合微服务架构、持续集成/持续部署(CI/CD)流程以及个人或小型团队的轻量化应用托管。本文聚焦于一个开箱即用的轻量级容器化应用部署平台,它整合了Docker、Docker Compose、Nginx反向代理与Portainer管理界面,为快速搭建具备自动化SS

weixin_30315723的博客 633

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

DockerUI与Docker Compose集成:多容器编排管理终极指南

DockerUI(现在称为UI For Docker)是一个基于Web的Docker管理界面,它通过纯客户端实现提供了直观的Docker容器管理体验。这个开源项目让Docker容器管理变得更加简单高效,特别是与Docker Compose集成后,能够实现多容器应用的快速部署和统一管理。对于需要管理多个Docker容器的开发者和运维人员来说,DockerUI与Docker Compose的结合使用可

gitblog_00373的博客 1123

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于Docker Compose构建个人开发者中转站:文件共享、内网穿透与轻量服务部署

在软件开发与运维实践中,容器化技术通过封装应用及其依赖,实现了环境的一致性与部署的可移植性,极大地简化了跨平台服务的交付流程。其核心原理在于利用操作系统层面的虚拟化,为每个应用提供独立的运行环境,从而解决了依赖冲突和环境差异的难题。这一技术为个人开发者和小型团队带来了显著的工程价值,使得在有限资源下快速搭建、测试和管理多种服务成为可能。典型的应用场景包括临时的文件同步与共享、内网服务的公网暴露、以及轻量级应用的原型部署。本文聚焦于如何整合Docker、Nginx Proxy Manager和File Bro

weixin_34008784的博客 396

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OpenClaw云端部署全攻略:Docker容器化与多模型代理网关实战

在AI应用开发领域,云端部署已成为实现弹性扩展、高可用性和团队协作的关键技术路径。其核心原理在于通过容器化技术(如Docker)将应用及其依赖打包成标准单元,实现环境隔离与一键部署,从而极大提升了开发运维效率。对于依赖大语言模型(LLM)的AI智能体框架而言,云端部署的技术价值尤为突出,它不仅解决了本地算力瓶颈,更通过引入模型代理网关架构,实现了对国内外多种模型API的统一、安全、灵活调用。这一架构能有效应对生产环境中常见的认证、计费、熔断与降级等挑战。具体到OpenClaw等AI智能体框架的部署场景,实践

weixin_30399155的博客 485

Homelab HTTPS通配符证书自动化配置指南:基于Let‘s Encrypt与Cloudflare

HTTPS作为保障网络通信安全的核心协议,通过SSL/TLS加密实现数据传输的机密性与完整性。其工作原理基于非对称加密和证书体系,由受信任的证书颁发机构(CA)验证域名所有权后签发数字证书。在自建服务场景中,HTTPS不仅能消除浏览器安全警告、提升用户体验,更是防范中间人攻击、保护敏感数据的必要措施。对于拥有多个子域名的家庭实验室(Homelab)环境,通配符证书通过一张证书覆盖所有同级子域名,极大地简化了证书管理流程。本文以Let's Encrypt的免费CA服务和ACME自动化协议为基础,结合Cloud

weixin_34055787的博客 359
上一篇: Nginx完美代理Alibaba Nacos
下一篇: 使用阿里云和gcr.azk8s.cn镜像安装Kubernetes (K8s)
福来哥
博客等级 码龄17年 86粉丝 31原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值