1、安装Docker

# 安装Docker
https://docs.docker.com/get-docker/# 安装Docker Compose
https://docs.docker.com/compose/install/# CentOS安装Docker
https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA

2、申请Let's Encrypt证书

详见:
https://docs.linuxserver.io/general/swag
https://github.com/linuxserver/docker-swag
https://hub.docker.com/r/linuxserver/swag

创建目录:

mkdir letsencrypt
cd letsencrypt

创建docker-compose.yaml文件:

services:swag:image: linuxserver/swag:latestcontainer_name: swagcap_add:- NET_ADMINenvironment:- PUID=0- PGID=0- TZ=Asia/Shanghai- URL=example.com- VALIDATION=http- SUBDOMAINS=www, #optional- CERTPROVIDER= #optional- DNSPLUGIN=cloudflare #optional- PROPAGATION= #optional- EMAIL= #optional#- ONLY_SUBDOMAINS=false #optional- ONLY_SUBDOMAINS=true #optional- EXTRA_DOMAINS= #optional- STAGING=false #optional- DISABLE_F2B= #optional- SWAG_AUTORELOAD= #optional- SWAG_AUTORELOAD_WATCHLIST= #optionalvolumes:- ./config:/configports:- 443:443- 80:80 #optionalrestart: unless-stopped
说明:
1、根据实际情况修改PUID、PGID的值,使用id命令来查看当前用户的PUID、PGID的值
2、根据实际情况修改URL、SUBDOMAINS的值,URL为域名、SUBDOMAINS为子域名
3、将ONLY_SUBDOMAINS的值设置为true,只获取子域名证书
参数说明:-p 443:443	HTTPS 端口。
-p 80	HTTP端口(HTTP 验证和 HTTP -> HTTPS 重定向所需)。
-e PUID=1000	UserID。
-e PGID=1000	GroupID。
-e TZ=Etc/UTC	指定要使用的时区。
-e URL=example.com	域名/DNS(example.com 或者 customsubdomain.example.com)。
-e VALIDATION=http	使用Certbot验证方法,选项为http或dns。
-e SUBDOMAINS=www,	子域名(逗号分隔,无空格),如www,ftp,cloud。对于通配符证书,设置为wildcard。
-e CERTPROVIDER=	可选地定义证书提供商。设置zerossl为 ZeroSSL 证书(需要现有的ZeroSSL 帐户EMAIL和在环境变量中输入的电子邮件地址)。否则默认为 Let's Encrypt。
-e DNSPLUGIN=cloudflare	如果VALIDATION设置为dns。
-e PROPAGATION=	可选择覆盖(以秒为单位)dns 插件的默认传播时间。
-e EMAIL=	用于证书到期通知的可选电子邮件地址(ZeroSSL 必需)。
-e ONLY_SUBDOMAINS=false	如果您希望只获取某些子域的证书,而不是主域的证书(主域可能托管在另一台机器上,无法验证),请将其设置为true。
-e EXTRA_DOMAINS=	额外的完全限定域名(以逗号分隔,无空格),如example.net、subdomain.example.net、*.example.org。
-e STAGING=false	设置为true以在暂存模式下检索证书。速率限制会更高,但生成的证书将无法通过浏览器的安全测试。仅用于测试目的。
-e DISABLE_F2B=	如果您已经在其他地方运行该服务或使用不同的 IPS,则设置true为禁用容器中的 Fail2ban 服务。
-e SWAG_AUTORELOAD=	设置为true,以便在配置文件发生更改时自动重新加载,而无需停止/重启 nginx。您的文件系统必须支持 inotify。此功能之前通过 modtrue提供。
-e SWAG_AUTORELOAD_WATCHLIST=	除以下文件夹外,还包含一个管道分隔的用于自动重新加载的附加文件夹列表:/config/nginx。
-v /config	持久配置文件。
--read-only=true	使用只读文件系统运行容器。
--cap-add=NET_ADMIN	需要 fail2Ban 才能修改 iptables 规则。

创建并启动容器:

docker-compose up -d

查看容器列表:

docker ps

查看日志:

docker logs swag

进入容器:

docker exec -it swag bash

重启容器:

docker restart swag

停止并销毁容器:

docker-compose down

删除镜像:

docker rmi linuxserver/swag:latest

删除目录:

rm -rf ./config

SSL证书文件:

# 证书路径:
./config/etc/letsencrypt/live/域名# 证书文件:
cert.pem -> ../../archive/域名/cert1.pem
chain.pem -> ../../archive/域名/chain1.pem
fullchain.pem -> ../../archive/域名/fullchain1.pem
priv-fullchain-bundle.pem
privkey.pem -> ../../archive/域名/privkey1.pem
privkey.pfx
README# README文件:
This directory contains your keys and certificates.`privkey.pem`  : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem`    : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem`     : will break many server configurations, and should not be usedwithout reading further documentation (see link below).WARNING: DO NOT MOVE OR RENAME THESE FILES!Certbot expects these files to remain in this location in orderto function properly!We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.# 说明:
私钥文件:privkey.pem
证书文件:fullchain.pem

创建./config/nginx/proxy-confs/域名.subdomain.conf文件:

详见:./config/nginx/proxy-confs/homepage.subdomain.conf.sample
server {listen 443 ssl;listen [::]:443 ssl;server_name 域名;#include /config/nginx/ssl.conf;client_max_body_size 0;location / {root /config/www;#include /config/nginx/proxy.conf;#include /config/nginx/resolver.conf;#set $upstream_app homepage;#set $upstream_port 3000;#set $upstream_proto http;#proxy_pass $upstream_proto://$upstream_app:$upstream_port;}
}

重启nginx服务:

# 重启nginx服务:
docker exec -it swag nginx -s reload# curl访问:
curl -L 域名

浏览器访问:

3、详见

https://mp.weixin.qq.com/s/vNwwniGxGcKTPKKNJjYjfg
https://www.linuxserver.io/
https://docs.linuxserver.io/general/swag
https://github.com/linuxserver/docker-swag
https://hub.docker.com/r/linuxserver/swag
https://github.com/linuxserver-archive/docker-letsencrypt
https://hub.docker.com/r/linuxserver/letsencrypt
https://mp.weixin.qq.com/s/SOjKZ7ekufLVJ_dmfKwjZQ

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

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

相关文章

算法题(167):FBI树

审题: 本题需要我们将字符串按照题目要求进行递归展开,并按照后序遍历的顺序输出 思路: 方法一:递归 首先我们需要模拟一下题目的意思 其实就是第一步判断属于什么字符,然后将字符串分两半进行下一轮判断。而由于题目要…

从“分散开发”到“智能协同” —— Gitee 如何赋能河南农担构建金融级研发体系?

河南省农业信贷担保有限责任公司(以下简称「河南农担」)成立于 2016 年,是河南省属骨干国有企业,承担破解“三农”融资难题的重要职责。截至 2024 年底,河南农担累计实现担保规模 1037.05 亿元,位居全国农担…

青少年编程与数学 01-011 系统软件简介 14 Foxpro数据库

青少年编程与数学 01-011 系统软件简介 14 Foxpro数据库 一、历史沿革二、技术架构三、主要功能四、应用场景五、产品版本六、使用方法七、技术价值八、历史意义全文总结 **摘要:**FoxPro 是一款经典的桌面数据库管理系统,起源于 1984 年的 FoxBASE&…

android studio向左向右滑动页面

本文演示了Android Studio中使用ViewPager实现页面切换的方法。通过创建包含3个页面的ViewPager示例,详细展示了实现步骤:1)在XML布局中配置ViewPager和切换按钮;2)使用LayoutInflater动态加载页面布局;3)自定义SimplePagerAdapte…

数据可视化新姿势:Altair的声明式魔法

文章目录 一、告别编程式绘图的苦日子二、5分钟极速入门安装篇(记得先备好虚拟环境!)核心三剑客 三、高阶玩法揭秘1. 交互功能秒实现2. 复合图表so easy3. 魔改样式有套路 四、避坑指南(血泪经验)五、Altair vs 其他库…

PostgreSQL --数据库操作

一、基本操作 1、登录 #切换pg用户 su - postgres#重启服务 pg_ctl -D /usr/local/pgsql/data -l logfile restart#进入pg psql2、数据库操作 2.1、列出库 \l\lselect datname from database; \l:输出比\l多了Size,Tablespace 和 Description 列 :扩展输…

树莓派超全系列教程文档--(63)rpicam-apps可用选项介绍之常用选项

rpicam-apps可用选项介绍之常用选项 rpicam-apps 选项参考常用选项helpversionlist-camerascameraconfigtimeoutpreviewfullscreenqt-previewnopreviewinfo-textwidth 和 heightviewfinder-width 和 viewfinder-heightmode打包格式详细信息解压格式详细信息 viewfinder-modelor…

AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则

AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则 AI的发展过程与大模型原理详解一、AI的发展过程符…

SDXL 和 SDXL-Turbo 的区别

(1) SDXL(Stable Diffusion XL) 标准扩散模型,基于传统的多步去噪(通常 20~50 步)。 训练充分,特征更稳定,适合用于特征提取、方向学习(如 LoRA、SAE)。 计算成本高&am…

PyTorch:让深度学习像搭积木一样简单!!!

文章目录 🚀 一、 PyTorch的王炸:动态图 vs 静态图静态图的“痛苦回忆”(前方高能吐槽!)PyTorch动态图的降维打击🔥 🔥 二、 不只是灵活!PyTorch的三大杀器1. 张量(Tenso…

LeetCode--27.移除元素

解题思路: 1.获取信息: 给定一个数组和一个值,删除数组中等于这个值的值 要求是,返回数组中不等于这个值的数的数目 并且要求在数组上删除,不能使用额外辅助空间 还是给了评测标准(你可以根据它的原理来实现…

WebRTC(二):工作机制

核心组成 GetUserMedia:获取本地音视频设备(摄像头、麦克风)数据流。RTCPeerConnection:实现点对点的媒体流传输和网络连接管理。RTCDataChannel:点对点的任意数据通道(除音视频外传输数据)。 …

机器学习+城市规划第十五期:时空地理加权回归(STGWR)

机器学习城市规划第十五期:时空地理加权回归(STGWR) 引言 随着城市化进程的加速,城市规划面临越来越多复杂的挑战。在传统的城市规划中,通常会考虑到地理位置的影响,但往往忽略了时间维度。而在现代城市的…

用虚拟机安装macos系统之后进入Boot Manager页面

安装教程:在VMware中安装macos系统教程 在VMware中安装macos系统时启动后进入Boot Manager界面,通常是由于虚拟机的固件类型设置于镜像不兼容所致。 解决办法:虚拟机默认使用UEFI启动模式,但是部分macos镜像需要切换到BIOS模式才…

基于API的Redis缓存实现

1.使用Redis API 进行业务数据缓存管理 编写一个进行业务处理的类ApiCommentService,使用Autowired注解注入Redis API中常用的RedisTemplate(类似于Java基础API中的JdbcTemplate); 然后在数据查询、修改和删除三个方法中,根据业…

前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)

文章目录 1 前言2 大模型/自然语言处理2.1 FreeAL:在大模型时代实现无需人工的主动学习2.2 COLD:中文攻击性语言检测基准2.3 将词汇的对比信息融入词嵌入以实现反义词-同义词区分2.4 LogRAG:基于检索增强生成的半监督日志异常检测2.5 RankRAG…

PP-OCRv5 ubuntu20.04 OCR识别服务

目录 说明 使用 效果 下载 说明 PP-OCRv5 ubuntu20.04 OCR识别服务 使用 1、下载后解压 2、进入目录、运行程序 效果 1、浏览器访问 2、接口调用 下载 方式1 源码下载 方式2 通过网盘分享的文件:lw.PP_OCRService.tar.gz 链接: https://pan.baidu.com…

VScode打开后一直显示正在重新激活终端 问题的解决方法

一、问题 本人打开“.py”文件后,同时会出现以下两个问题。 1、VScode一直循环在”正在重新激活终端“ 2、日志显示intellicode报错: Sorry, something went wrong activating IntelliCode support for Python. Please check the “Python” and “VS I…

uniapp 实现腾讯云音视频通话功能

uniapp 深度集成腾讯云音视频通话功能实战指南 一、技术架构解析 腾讯云音视频解决方案采用IM信令控制层TRTC媒体传输层的双架构设计,实现核心能力解耦: #mermaid-svg-DKBpT4CVDkqU1IBw {font-family:"trebuchet ms",verdana,arial,sans-ser…

linux常见问题之截取文件指定行数

linux常见问题之截取文件指定行数 一、命令概述 在处理大文本文件时,我们打开该文件会非常不方便,比如服务器上的日志文件,于是我们常常需要提取特定的行进行分析。Linux 系统中提供了多个强大的命令行工具,可以帮助我们高效地完…