跳到主要内容

博客

代码人生:编织技术与生活的博客之旅

实战:部署全网最美docusaurus网站-2024.8.18(测试成功)

image-20240818230829321

目录

[toc]

版权声明

注意

本着开源共享、共同学习的精神:

本文是在 博主愧怍 开源项目:《blog》https://github.com/kuizuo/blog 基础上修复了最新无法按原作者代码部署成功的故障,内容依旧属于原作者愧怍所有。转载无需和我联系,但请注明文章来源。如果侵权之处,请联系博主进行删除,谢谢~

次问题修复来源于QQ群里一位大佬:月桂树在嘉陵江喝咖啡,特此由衷表示感谢😘😘😘

强烈推荐:

博主愧怍

https://kuizuo.cn/

https://github.com/kuizuo/blog

image-20240811145652133

image-20240811150530880

QQ群里一位大佬:月桂树在嘉陵江喝咖啡

https://gitee.com/renlangman2/docusaurus352

image-20240818232611799

背景

原博主愧怍 不是已经有开源库了吗?为啥自己又要出这篇文章呢?

因为因为最近有小伙伴反馈原作者的代码无法部署成功???。。。。

自己测试了下,发现的确无法部署成功了……

排查了好久也没发现问题:。。。

作者最新代码是2周前才提交的哇。。。。;

自己老仓库本地是可以做正常运行的,但是新拉的仓库不行;。。。。;

作者的仓库克隆到github,然后用netfliy是可以正常运行的;。。。。;

奇怪了:。。。

自己评估可能出现的原因:。。。

可能是作者魔改后的docus里,有些node依赖包,被官方源丢弃了,导致无法正常下载依赖包。。。。。/相关语法错误;

恰好群里有位大佬改了下代码,让其用yarn来部署项目,结果发现可以了哦。🤣

因此输出了这篇文章。

环境

win10
Docusaurus version: 3.4.0
Node version: v20.12.1
yarn 1.22.22

源码

gitee库:

https://gitee.com/onlyonexl/mogai-docus-kuizuo-v2.git

image-20240818232506667

本地:

image-20240818232425910

说明

备注

mogai-docus-kuizuo-v2 (原作者kuizuo代码部署出了问题,由q群里其他大佬把代码改成了yarn部署,经测试可成功部署运行)

前提

win10提前安装好nodejs环境。

如何安装nodejs,请访问官网(一直下一步安装就好):

https://nodejs.org/en/download/

image-20240321061454237

1、拉取代码

git clone https://gitee.com/onlyonexl/mogai-docus-kuizuo-v2.git

image-20240818230112805

2、安装yarn

注意

一定要提前安装好yarn工具

进入mogai-docus-kuizuo-v2目录:

安装yarn:

npm install --global yarn
yarn --version

image-20240818230441436

3、下载依赖包

yarn install

3、运行项目

yarn start

image-20240818230814748

image-20240818230829321

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240805214647028

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240814230415388

🍀 博客:

http://blog.onedayxyy.cn/

image-20240804075845906

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

往期推荐

QQ群

玩转Typora+Docusuaurus+起始页交流群:(欢迎小伙伴一起探讨有趣的IT技术,来完成一些漂亮的项目)

我的开源项目:

项目名称我的文档我的demo作者demo
1、玩转Typorahttps://wiki.onedayxyy.cn/docs/typorahttps://wiki.onedayxyy.cn/docs/typorahttps://typoraio.cn/#
2、玩转Docusaurushttps://wiki.onedayxyy.cn/docs/mogai-docusaurushttps://wiki.onedayxyy.cn/https://www.docusaurus.cn/
3、个人主页home3.0https://wiki.onedayxyy.cn/docs/home3.0https://onedayxyy.cn/https://github.com/hsBUPT/hsBUPT.github.io
4、全网最美博客-ruyu-bloghttps://wiki.onedayxyy.cn/docs/ruyu-blog-install-one-keyhttps://blog.onedayxyy.cn/https://www.kuailemao.xyz/
5、家庭相册filesite-iohttps://wiki.onedayxyy.cn/docs/filesite.io-photot-install-fullhttps://photo.onedayxyy.cn/https://demo.jialuoma.cn/

https://wiki.onedayxyy.cn/docs/OpenSource

image-20240811063938529

  • typora皮肤

https://wiki.onedayxyy.cn/docs/typora

image-20240518165037517

  • 起始页

https://onedayxyy.cn/

image-20240814230557697

  • 知识库

https://wiki.onedayxyy.cn/

image-20240814230415388

  • 博客

https://blog.onedayxyy.cn/

image-20240803162010305

  • 家庭相册

https://photo.onedayxyy.cn/

image-20240814230625430

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20240818231617781

docusaurus阅读需 4 分钟

实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)

image-20240804094049959

目录

[toc]

版权声明

本着开源共享、共同学习的精神:

本文是在 博主Ruyu 文章:《Ruyu-Blog 博客升级HTTPS》https://www.kuailemao.xyz/article/49 基础上增加了自己实践过程的一些细节,转载无需和我联系,但请注明文章来源。如果侵权之处,请联系博主进行删除,谢谢~

强烈推荐:

博主Ruyu

Ruyu-Blog开源博客gitee地址:https://gitee.com/kuailemao/ruyu-blog

Ruyu-Blog开源博客网站地址:https://www.kuailemao.xyz/

image-20240804154704039

image-20240804154737946

背景

原来自己部署的ruyu-blog博客都是https,浏览器一直提示不安全。刚好伟大的群主也发布了网站升级https的教程,这里就跟着一起做了升级。

我将自己所有网站都进行了子域名的划分,全部使用同一个证书(泛域名证书),非常方便。

通过子域名的配置,自己网站各模块内容更加细化,nice。

另外,此文章说明了如何给自己站点配置子域名方案:

1、在域名解析那里添加自己的子域名解析

2、nginx里配置子域名配置

3、验证

前文

域名定义

image-20240802193419872

什么叫主域名/子域名

onedayxyy.cnnas.onedayxyy.cn 这两个域名的主要区别在于它们的级别和可能指向的服务。

  1. 顶级域名(TLD)和二级域名(SLD):

    • onedayxyy.cn: 这个域名是一个二级域名。.cn 是国家顶级域名(ccTLD),代表中国,而 onedayxyy 是在 .cn 下注册的二级域名。一般来说,这样的域名用于代表公司、组织或个人的主要网络地址。
  2. 子域名:

    • nas.onedayxyy.cn: 这个域名是 onedayxyy.cn子域名。子域名通常用于组织主域名下面的不同服务或内容。在这个例子中,nas 可能表示网络附加存储(Network Attached Storage),这意味着这个子域名可能指向与存储相关的服务或网站部分。

使用场景区别:

  • 访问服务: 访问 onedayxyy.cn 通常会带你到该组织的主页或主要服务页面,而访问 nas.onedayxyy.cn 可能会带你到专门的网络存储服务或提供特定功能的页面。

  • 配置和管理: 在域名系统(DNS)管理上,你可以为每个子域名配置不同的记录,这意味着 nas.onedayxyy.cn 可以指向一个不同的IP地址,或者使用不同的DNS记录,比如为了负载均衡、地理位置服务等。

在实际应用中,子域名非常有用,**它允许域名所有者创建特定的服务或分类内容,而不需要为每个服务注册新的域名。**这既减少了成本,也使得域名管理更加集中和方便。

==什么叫子域名==

域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。

image-20240606112050930

举例:

==为什么要设置子域名==

  1. 因为一个主域名可以设置出不同的子域名,所以能够便于用户将不同的子域名应用到不同的业务中。

    例如主域名是aliyun.com,开发者则可以设置子域名api.aliyun.com为接口业务使用,子域名 pay.aliyun.com为支付系统使用。

  2. 实现访问者按照用户指定的子域名进行访问。

    例如主域名是aliyun.com,开发者设置子域名为www.aliyun.comapi.aliyun.com后, 访问者输入这两个域名时就可以实现访问。

我的子域名规划

主域名:
起始页:onedayxyy.cn

子域名:
知识库:wiki.onedayxyy.cn
博客:blog.onedayxyy.cn
博客后台:blogadmin.onedayxyy.cn
博客存储:minio.onedayxyy.cn
相册:photo.onedayxyy.cn
音乐:music.onedayxyy.cn
说说:moments.onedayxyy.cn

子域名都是通过Nginx的反向代理来实现的。

image-20240804093854482

Certbot简介

关于certbot

image-20240803071422778

image-20240803071438908

官方部署方法

https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard

image-20240803062215121

image-20240803062430406

指导手册

https://eff-certbot.readthedocs.io/en/latest/#

image-20240803072046374

部署手册(官网)

image-20240803071618051

环境

centos7.6
ecs服务器 (得拥有1台云服务器)

源码

不涉及

写在前面

本次是手动申请的,Cerbort如何自动签发证书/续签证书,待后续研究……

手动申请

因为我的项目使用的是Docker不是,自动申请/续签不太适用,所以使用手动申请,自动申请方法自己去看官方文档。

使用Certbot ACME客户端。

1、选择好对应的环境

https://certbot.eff.org/instructions?ws=nginx&os=centosrhel7&tab=standard

image-20240803062215121

2、安装 Certbot

yum install epel-release -y
yum install snapd -y
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

snap install --classic certbot

3、准备 Certbot 命令

sudo ln -s /snap/bin/certbot /usr/bin/certbot

4、手动运行方式

#作者命令
certbot -d 域名(可以使用*.代表所有二级域名) --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly


#自己命令(使用这个命令即可)
certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

后续根据提示进行邮箱填写、DNS的TXT记录验证、等等……

然后会得到两个关键文件,注意看提示信息的路径。

image-20240803062653952


这里稍微记录下一些细节:

到域名解析上那里添加解析验证记录:(验证同意后,这个记录值建议删除)

image-20240804092124050

image-20240803100103524

[root@ruyub-blog-prod onedayxyy.cn]# pwd
/root/config/archive/onedayxyy.cn
[root@ruyub-blog-prod onedayxyy.cn]# ll
total 16
-rw-r--r-- 1 root root 1289 Aug 3 10:00 cert1.pem
-rw-r--r-- 1 root root 1566 Aug 3 10:00 chain1.pem
-rw-r--r-- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw------- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@ruyub-blog-prod onedayxyy.cn]#

以上生成好证书。

5、nginx配置(主域名&子域名,nginx.conf拆分)

再次把这2个证书对ecs里的来证书进行替换,测试:

image-20240804092250535

重启nginx:

nginx -s reload


这里我贴一下自己ecs里的nginx配置:

以下nginx.conf配置是生产力可用的配置,亲测有效!2024年8月4日

自己ecs已安装好nginx服务:

nginx.conf配置文件:

cat /etc/nginx/nginx.conf

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
gzip on; # 启用 gzip 压缩
gzip_vary on; # 根据请求中的 `Accept-Encoding` 响应头决定是否启用 gzip
gzip_proxied any; # 在所有代理请求中启用压缩
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 指定哪些类型的响应需要压缩
gzip_comp_level 5; # 压缩等级(范围是 1-9,高级别意味着更好的压缩但会消耗更多 CPU 资源)
gzip_min_length 256; # 只对超过给定长度的响应启用压缩
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 /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;

include /etc/nginx/mime.types;
default_type application/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
charset utf-8;

# Settings for a TLS enabled server.

}

ssl证书位置:

[root@docusaurus-wiki cert]#pwd
/etc/nginx/cert
[root@docusaurus-wiki cert]#ll
total 8
-rw-rw-rw- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw-rw-rw- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@docusaurus-wiki cert]#

conf.d目录下:

[root@docusaurus-wiki conf.d]#pwd
/etc/nginx/conf.d
[root@docusaurus-wiki conf.d]#ll
total 28
-rw-r--r-- 1 root root 5252 Aug 3 14:57 blog.conf
-rw-r--r-- 1 root root 2498 Aug 3 14:15 home.conf
-rw-r--r-- 1 root root 1749 Aug 3 10:27 moments.conf
-rw-r--r-- 1 root root 1370 Aug 3 10:26 music.conf
-rw-r--r-- 1 root root 1745 Aug 3 10:23 photo.conf
-rw-r--r-- 1 root root 1404 Aug 3 09:11 wiki.conf
[root@docusaurus-wiki conf.d]#

主域名配置文件:

[root@docusaurus-wiki conf.d]#cat home.conf 
server {
listen 80;
server_name onedayxyy.cn www.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name onedayxyy.cn www.onedayxyy.cn;

root /root/home3.0;

location / {
index index.html index.htm;
}

# ……删除部分敏感信息
ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

wiki配置文件:

[root@docusaurus-wiki conf.d]#cat wiki.conf 
server {
listen 80;
server_name wiki.onedayxyy.cn;
#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.onedayxyy.cn;

root /root/rsync/rsync-docusaurus/build;

location / {
index index.html index.htm;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

相册配置文件:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name photo.onedayxyy.cn;

#root /root/home3.0;

#location / {
# index index.html index.htm;
#}


location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
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;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

6、配置域名解析

来到自己域名云厂商配置位置,添加自己的子域名解析记录:

image-20240804093218325

对应我当前的信息如下:

主域名:
起始页:onedayxyy.cn

子域名:
知识库:wiki.onedayxyy.cn
博客:blog.onedayxyy.cn
博客后台:blogadmin.onedayxyy.cn
博客存储:minio.onedayxyy.cn
相册:photo.onedayxyy.cn
音乐:music.onedayxyy.cn
说说:moments.onedayxyy.cn

7、验证(完美)

https://onedayxyy.cn/

image-20240803100518511

https://wiki.onedayxyy.cn/

image-20240803100457546

https://blog.onedayxyy.cn/

image-20240804092002960

8、本人所有站点

起始页:

https://onedayxyy.cn/

image-20240804094001561

知识库:

https://wiki.onedayxyy.cn/

image-20240804094027266

博客:

https://blog.onedayxyy.cn/

image-20240804094049959

相册:

https://photo.onedayxyy.cn/

image-20240804094127219

音乐:

https://music.onedayxyy.cn/

image-20240804094148521

说说:

https://moments.onedayxyy.cn/

image-20240804094220242

注意点

① 切记一申请泛域名证书的命令方式👸

问题:我利用certbot申请的*.onedayxyy.cn泛域名证书,给子域名wiki.onedayxyy.cn都能正常使用,但是主域名onedayxyy.cn依然报不安全的证书,这个是为什么呢?

https://onedayxyy.cn/

image-20240803095048063

https://wiki.onedayxyy.cn/

image-20240803095104547

gpt回答:

当你使用 Certbot 申请泛域名证书(例如 *.onedayxyy.cn)时,该证书通常只覆盖通配符子域名,而不包括主域名(例如 onedayxyy.cn)。这是由于泛域名证书的定义方式所决定的。

解决方法

要确保主域名 onedayxyy.cn 也能使用安全的证书,你需要在申请证书时明确包含主域名。以下是具体步骤:

  1. 重新申请证书: 使用 Certbot 重新申请证书,并在命令中明确指定主域名和泛域名。例如:

    sudo certbot certonly --manual -d onedayxyy.cn -d *.onedayxyy.cn

    这样,Certbot 会生成一个包含主域名 onedayxyy.cn 和泛域名 *.onedayxyy.cn 的证书。

  2. 配置 Nginx: 确保你的 Nginx 配置文件中正确引用了新生成的证书。例如:

    server {
    listen 443 ssl;
    server_name onedayxyy.cn;

    ssl_certificate /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;

    # 其他配置...
    }

    server {
    listen 443 ssl;
    server_name wiki.onedayxyy.cn;

    ssl_certificate /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;

    # 其他配置...
    }
  3. 验证和重新加载 Nginx: 在修改配置文件后,使用以下命令测试配置文件的语法是否正确:

    sudo nginx -t

    如果测试通过,使用以下命令重新加载 Nginx 配置:

    sudo systemctl reload nginx

通过以上步骤,你应该能够确保主域名 onedayxyy.cn 和泛域名 *.onedayxyy.cn 都能使用安全的证书。


自己重新再测试:

#有问题版
certbot -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

#gpt回答版
sudo certbot certonly --manual -d onedayxyy.cn -d *.onedayxyy.cn

#正确版
certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

之前生成的:

image-20240803095424151

先删除目录,再进行测试:

rm -rf config/

certbot -d onedayxyy.cn -d *.onedayxyy.cn --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

image-20240803100103524

[root@ruyub-blog-prod onedayxyy.cn]# pwd
/root/config/archive/onedayxyy.cn
[root@ruyub-blog-prod onedayxyy.cn]# ll
total 16
-rw-r--r-- 1 root root 1289 Aug 3 10:00 cert1.pem
-rw-r--r-- 1 root root 1566 Aug 3 10:00 chain1.pem
-rw-r--r-- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw------- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@ruyub-blog-prod onedayxyy.cn]#

再次把这2个证书进行替换,测试:

image-20240803100317552

重启nginx:

nginx -s reload

验证:(完美)

https://onedayxyy.cn/

image-20240803100518511

https://wiki.onedayxyy.cn/

image-20240803100457546

代办

① Cerbort如何自动签发证书/续签证书?

后续有空了研究。

FAQ

问题:https证书能同时给其子域名使用吗?2024.7.23(已解决)😊

背景

我的域名是onedayxyy.cn,然后我为他申请了一个https证书,且在nginx里已经配置了https证书。

但是我现在使用了wiki.onedayxyy.cn子域名来提供wiki服务,那么我想通过https://wiki.onedayxyy.cn访问,请问原来的https证书能直接配置给我的子域名wiki.onedayxyy.cn吗?

gpt回答

如果您已经为 onedayxyy.cn 申请了一个通配符证书(例如 *.onedayxyy.cn),那么这个证书将自动覆盖所有子域名,包括 wiki.onedayxyy.cn。通配符证书允许您在一个证书中保护主域名下的所有子域名。

如果您申请的是单域名证书(例如 onedayxyy.cn),那么这个证书只能用于 onedayxyy.cn 这个域名,而不能用于 wiki.onedayxyy.cn 这个子域名。在这种情况下,您需要为 wiki.onedayxyy.cn 单独申请一个新的证书。

以下是一些步骤来检查和配置您的证书:

  1. 检查证书类型

    • 打开您的证书文件(通常是 .crt.pem 文件)。
    • 查看证书的主题(Subject)字段,确认是否包含通配符(例如 *.onedayxyy.cn)。
  2. 配置 Nginx

    • 如果您拥有通配符证书,确保在 Nginx 配置中正确指定了证书文件和密钥文件的路径。
    • wiki.onedayxyy.cn 配置一个新的 server 块,并确保它指向相同的证书和密钥文件。

以下是一个示例 Nginx 配置:

server {
listen 80;
server_name wiki.onedayxyy.cn;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name wiki.onedayxyy.cn;

ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;

# 其他配置...

location / {
# 您的 Wiki 服务配置
}
}

确保将 /path/to/your/certificate.crt/path/to/your/private.key 替换为实际的证书和密钥文件路径。

  1. 重启 Nginx

    • 保存配置文件并重启 Nginx 以应用更改:

      sudo systemctl restart nginx

通过以上步骤,您应该能够使用 https://wiki.onedayxyy.cn 访问您的 Wiki 服务,前提是您拥有适用于子域名的正确证书。

亲自验证

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.onedayxyy.cn;
root /root/rsync/rsync-docusaurus/build;

location / {
index index.html index.htm;
}

ssl_certificate "cert/www.onedayxyy.cn.pem";
ssl_certificate_key "cert/www.onedayxyy.cn.key";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

image-20240723063840622

但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???

image-20240723214356261

但是,我查看pem文件,是一串代码啊,没那个(Subject)字段???

/etc/nginx/cert/www.onedayxyy.cn.pem

gpt回答:

openssl x509 -in /etc/nginx/cert/www.onedayxyy.cn.pem -text -noout

image-20240723064323650

以下是一个示例输出:

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
04:00:00:00:00:01:23:45:67:89:ab:cd:ef
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
Validity
Not Before: Sep 1 12:00:00 2023 GMT
Not After : Sep 1 12:00:00 2024 GMT
Subject: CN=*.onedayxyy.cn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:bb:cc:dd:ee:ff:11:22:33:44:...

在这个输出中,Subject 字段会显示为 CN=*.onedayxyy.cn 或者 CN=onedayxyy.cn。如果您的证书是通配符证书,它将显示 CN=*.onedayxyy.cn

如果输出中 Subject 字段包含 *.onedayxyy.cn,那么您的证书是通配符证书,可以用于 wiki.onedayxyy.cn 子域名。如果是 CN=onedayxyy.cn,则只能用于主域名 onedayxyy.cn,不能用于子域名。

如果您仍然遇到问题,可以将证书文件的内容复制粘贴给我,我可以帮助您分析。好的

再次亲自测试:

可以发现,我之前申请的是一个单域名证书哦。🤣

openssl x509 -in /etc/nginx/cert/www.onedayxyy.cn.pem -text -noout

image-20240723064449424

结论

利用免费ssl证书生成工具生成泛域名证书,那么自己的额所有站点都可以用这一套证书了,很方便。

问题:cdn上我配置的是对主域名onedayxyy.cn加速,请问这个对其子域名wiki.onedayxyy.cn也会加速吗?-2024.7.24(已解决)

CDN(内容分发网络)的配置通常是针对具体的域名进行的。因此,如果您的 CDN 配置是针对主域名 onedayxyy.cn 进行加速,那么它并不会自动对子域名 wiki.onedayxyy.cn 进行加速。子域名需要单独配置才能享受 CDN 加速服务。

要为子域名 wiki.onedayxyy.cn 配置 CDN 加速,您需要在 CDN 服务提供商的管理控制台中进行以下操作:

  1. 添加子域名:在 CDN 服务提供商的管理控制台中,添加 wiki.onedayxyy.cn 作为一个新的加速域名。

  2. 配置子域名:为 wiki.onedayxyy.cn 配置相应的加速设置,包括缓存策略、源站配置、SSL证书等。

  3. 更新DNS记录:将 wiki.onedayxyy.cn 的 DNS 记录指向 CDN 提供的加速节点。这通常涉及将子域名的 CNAME 记录指向 CDN 提供的特定域名。

示例步骤(通用流程,具体步骤可能因 CDN 提供商而异)

  1. 登录 CDN 控制台:登录到您的 CDN 服务提供商的管理控制台。

  2. 添加加速域名

    • 找到添加加速域名的选项。
    • 输入 wiki.onedayxyy.cn 作为新的加速域名。
  3. 配置加速规则

    • 配置缓存策略,例如缓存时间、忽略缓存参数等。
    • 配置源站地址,即您的实际服务器地址。
    • 配置SSL证书,以确保HTTPS访问。
  4. 获取CNAME记录

    • 在配置完成后,CDN 提供商会为您提供一个 CNAME 记录。
    • 例如,wiki.onedayxyy.cn 可能需要指向 cdn123.example.com
  5. 更新DNS设置

    • 转到您的域名注册商或 DNS 服务提供商的控制台。
    • 添加或更新 wiki.onedayxyy.cn 的 CNAME 记录,使其指向 CDN 提供的 CNAME 地址。

注意事项

  • 独立配置:每个子域名需要独立配置 CDN 加速。这意味着每个子域名都需要单独添加到 CDN 控制台,并进行相应的设置。
  • SSL证书:确保为每个子域名配置 SSL 证书,以支持 HTTPS 访问。
  • 优化设置:根据子域名的不同用途,您可能需要配置不同的缓存策略和优化设置。

通过这些步骤,您可以确保 wiki.onedayxyy.cn 也能够通过 CDN 获得加速服务。、

总结

那目前我就不对https://wiki.onedayxyy.cn/子域名进行加速了,目前测试加载速度还行,如果后续实在加载太慢,我这里就做下cdn加速;

案例:子域名反向代理配置方法-2024.8.4(已解决)

http:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
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;
}
}

https:

[root@docusaurus-wiki conf.d]#cat photo.conf 
server {
listen 80;
server_name photo.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name photo.onedayxyy.cn;

#root /root/home3.0;

#location / {
# index index.html index.htm;
#}


location / {
proxy_pass http://47.100.215.163:8082/; # 实际的后台路径
client_max_body_size 100M;
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;
}

ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

案例:DNS解析配置方式

在云厂商域名dns解析那里需要的配置:

本次是在阿里云dns解析上配置的。

image-20240722221959360

记录类型:

image-20240722222017197

记录值:

image-20240722222058662

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240711101911622

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240804075128231

🍀 博客:

http://blog.onedayxyy.cn/

image-20240804075845906

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

往期推荐

我的开源项目:

https://wiki.onedayxyy.cn/docs/OpenSource

image-20240804074953487

玩转Typora+Docusuaurus-起始页交流群:

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20240804100023954

Certbot阅读需 18 分钟

实战:完美解决md图床问题-nginx图床-2024.8.4(测试成功)

image-20240827064930084

目录

[toc]

版权声明

本文为One原创文章,转载无需和我联系,但请注明文章来源 https://onedayxyy.cn/

为什么要使用图床

对于写博客的朋友们来讲,图床这个东西一定不会陌生,而且在一定程度上也给大家造成过一定困扰。

对于不清楚这个东西的朋友,我就在这儿大概说一下图床是个啥东西。所谓图床,其实可以就相当于我们手机上的相册,不过他是在线的,而且是对大家开放的,大家都可以访问查看,但是编辑删除这些功能仅限于拥有者,就相当于用百度云分享的公开照片,你可以查看,也可以下载下来编辑,但是拥有权还是属于分享者。

那你可能会疑惑,那这个东西和写博客的我们有啥关系呢?

你想想,我们写博客,是不是有很多图片需要插入,我们这些博客要保留在本地的时候你可以预览到图片,但一旦你要把它发布到网上,这时候问题来了!发现图片上传失败,那是因为你本地的图片都是存在本地的,平台不会自动给你上传,那这个时候就凸显出图床的重要性了。当然了,如果你是直接在平台进行编辑,那着一点就不用担心了,基本平台都会自动给你上传到它自己的服务器。

有了图床,我们在本地写好博客之后,就能够任意复制到其他平台,不用担心图片丢失问题了。

  • md的核心就是解决图床问题,如果解决了图床问题,不管用typora还是ob来维护笔记核心数据,就会特别香;
  • 还是那句话,核心笔记数据必须自主可控,不绑定任何一家笔记应用。

需求背景

1、解决自己typora md图床问题

2、解决自己博客文章图床问题

最佳方案

购买一台云服务器和一个域名,部署Nginx,然后利用云服务器的nginx提供md图床服务。同时利用rsync服务定期同步图床数据到本地进行备份,稳得一b。

云服务器:部署nginx服务(提供图床服务)
typora:作为本地md编辑软件(当然用ob也行哦)
picgo:作为md里图片上传工具

本方案优点:

  1. 图床使用域名做解析,即使以后换ecs的公网ip后,我们只需要迁移图片数据就行,md元数据是不用动的,很丝滑。
  2. 自己也利用rsync会每天定时从linux同步数据到本地windows PC,简直nice。==(rsync服务、nginx服务部署很简单,请放心)==
  3. 解决了md图床问题,那么使用typora/ob维护笔记数据,体验真的飞起哦。另外,也一起解决了博客图床问题哦,完美。

前提

已经提前购买好云服务器;

域名已完成备案(域名备案也是很方便的哈);

域名已配置https证书;

说明:

最好建议通过域名来访问自己的图床服务,因为公网ip后续可能会更改,但域名是不会变的,因此后续迁移图床数据是非常方便的;

域名备案流程也不复杂,把该填的内容都填了,等待审批通过就好;

域名配置https泛域名证书也很方便;(见手把手文档:《实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)》)

1、部署nginx服务

  • 云服务器上部署nginx服务

参考文章:

《实战:yum方式部署nginx-2024.4.16(测试成功)》https://wiki.onedayxyy.cn/docs/ngnix-install-yum

image-20240416063333164

  • 给自己网站配置https泛域名证书

参考如下链接:

《实战:使用Certbot签发免费ssl泛域名证书(主域名及其它子域名共用同一套证书)-2024.8.4(成功测试)》:https://wiki.onedayxyy.cn/docs/docs/Certbot-install

image-20240804170957387


  • 自己本次nginx配置如下:

2024年8月4日

nginx.conf配置文件:

cat /etc/nginx/nginx.conf

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
gzip on; # 启用 gzip 压缩
gzip_vary on; # 根据请求中的 `Accept-Encoding` 响应头决定是否启用 gzip
gzip_proxied any; # 在所有代理请求中启用压缩
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 指定哪些类型的响应需要压缩
gzip_comp_level 5; # 压缩等级(范围是 1-9,高级别意味着更好的压缩但会消耗更多 CPU 资源)
gzip_min_length 256; # 只对超过给定长度的响应启用压缩
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 /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;

include /etc/nginx/mime.types;
default_type application/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
charset utf-8;

# Settings for a TLS enabled server.

}

ssl证书位置:

[root@docusaurus-wiki cert]#pwd
/etc/nginx/cert
[root@docusaurus-wiki cert]#ll
total 8
-rw-rw-rw- 1 root root 2855 Aug 3 10:00 fullchain1.pem
-rw-rw-rw- 1 root root 241 Aug 3 10:00 privkey1.pem
[root@docusaurus-wiki cert]#

conf.d目录下:

[root@docusaurus-wiki conf.d]#pwd
/etc/nginx/conf.d
[root@docusaurus-wiki conf.d]#ll
total 28
-rw-r--r-- 1 root root 5252 Aug 3 14:57 blog.conf
-rw-r--r-- 1 root root 2498 Aug 3 14:15 home.conf
-rw-r--r-- 1 root root 1749 Aug 3 10:27 moments.conf
-rw-r--r-- 1 root root 1370 Aug 3 10:26 music.conf
-rw-r--r-- 1 root root 1745 Aug 3 10:23 photo.conf
-rw-r--r-- 1 root root 1404 Aug 3 09:11 wiki.conf
[root@docusaurus-wiki conf.d]#

主域名配置文件:

[root@docusaurus-wiki conf.d]#cat home.conf 
server {
listen 80;
server_name onedayxyy.cn www.onedayxyy.cn;

#配置https重定向
return 301 https://$host$request_uri;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name onedayxyy.cn www.onedayxyy.cn;

root /root/home3.0;

location / {
index index.html index.htm;
}

##图床数据
location /images {
alias /images;
index index.html;
}
# ……删除部分敏感信息
ssl_certificate "cert/fullchain1.pem";
ssl_certificate_key "cert/privkey1.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

2、配置picgo

==方法:配置picgo上传图片到云服务器-2023.12.4(测试成功)==

  • 环境
picgo v2.3.1
typora v1.7.6
win10
  • 提出问题(肯定是可以的)

picgo软件是否可以支持上传图片到自己的云服务器呢?

  • 寻找官网插件

https://github.com/PicGo/Awesome-PicGo

文档地址

https://github.com/imba97/picgo-plugin-sftp-uploader

  • 自己本次配置

D:/docusaurus/resource/shell/sftpUploader.json

{
"sftpUploader": {
"url": "https://onedayxyy.cn",
"path": "/images/{fullName}",
"uploadPath": "/images/{fullName}",
"host": "ecsip",
"port": 22,
"username": "root",
"password": "123456"
}
}

image-20240404075625491

自己云服务器ecs地址:

自己域名:onedayxyy.cn
nginx图床配置路径:/images
图片url地址:https://onedayxyy.cn/images/image-20231123144421591.png
  • 测试:(符合预期)

image-20231204145705306

  • 自己typora配置

image-20240804171453905

测试结束。😘

注意:经测试,这里的网站标识 要填内容一定得是 json文件里的 "xx"名称才行的,不然就会报如下错误。🤣

3、配置rsync服务(可选)(推荐配置)

  • 配置rsync服务,主要是可以配置winodws定期拉取图床数据,方便后期如果更换云服务器,可以更快速迁移数据,也是为了备份数据。(建议配置)
  • 配置rsync服务,很简单的,可按如下文档配置。
  • 参考文档

《实战:从linux同步数据到winodws(增量定时同步)-2023.11.30(测试成功)》(本次用到的) https://wiki.onedayxyy.cn/docs/rsync-linux-to-winodws

image-20240416062012160

  • 自己云服务器rsyncd服务配置截图

[root@docusaurus-wiki ~]#vim /etc/rsyncd.conf

image-20240416062337098

  • winodws本地同步数据截图
echo backupmd图床数据……
rsync.exe -avPzruh --port 8730 --password-file=/cygdrive/D/docusaurus/resource/shell/password.txt root@47.100.215.163::cmi-MdImages/ /cygdrive/D/BaiduSyncdisk/backup/rsync_local/cmi-MdImages-local

image-20240416062456003

  • 图床数据量汇总:

本次更换图床为ecs nginx提供的图床,体验nice。

##本地docusaurus配置
Administrator@DESKTOP-LJJNG21 MINGW64 /d/docusaurus (master)
$ du -shc docs/
10M docs/
10M total

##ecs
[root@docusaurus-wiki ~]#ll /images/ |wc -l
13026
[root@docusaurus-wiki ~]#du -shc /images/
3.8G /images/
3.8G total
[root@docusaurus-wiki ~]#

image-20240416062624907

5、配置winodws定时任务

参考如下文章:

《实战-winodws配置定时脚本-2023.11.30(测试成功)》 https://wiki.onedayxyy.cn/docs/DingShiJiaoBen/

image-20240804172841094

我自己目前为图床做的备份定时配置如下:

image-20240804172925309

image-20240804172949114

6、测试验证

  • 使用测试

https://onedayxyy.cn/images/image-20240416055013558.png

image-20240416061201293

image-20240416061236382

总结

笔记数据对任何人来说,都是至关重要的。(尤其对IT人员)

通过md来维护自己的IT数据,特别丝滑;

但md最大的问题就是处理好图床问题,通过这种方式,我们可以轻松解决md图床问题,ecs寸一份图床数据,然后会定期同步到本地(百度云同步空间),自己的md文档也通过坚果云进行同步(免费),基本完全保证了自己的笔记数据安全。

笔记数据安全得到了保证,然后通过丝滑的typora,我们就可以好好专心生成原创文章了。😊

FAQ

常见图床搭建方式

本地图床

存放图床的目录可用坚果云百度云同步空间来同步数据,以保证其数据安全性。

D:\我的坚果云\LocalImages
D:\BaiduSyncdisk\LocalImgs

1.typora+相对路径

1、优点

相对路径的md文件可以方便进行传播;

方便静态站点工具渲染md(例如docusaurus支持相对路径的md文档的渲染);

2、缺点

不是很利于md文件的维护;

且会造成某些文件的重复使用,导致存储空间增大;

2.typora+绝对路径

  • 个人更推荐使用typora+绝对路径方式,例如自己就是将本地图床路径设置为D:\BaiduSyncdisk\LocalImgs\图片,这样的话,更利于维护自己的笔记数据;

  • 使用绝对路径的话,就可以轻松修改md文件名称了;(这个还是非常方便的)如果使用相对路径,每次修改md文件名称后,还需要修改存放图片目录的名称,然后再批量替换md文件中图片的路径。

https://bucket-hg.oss-cn-shanghai.aliyuncs.com/img/
D:\BaiduSyncdisk\LocalImgs\image-20220530200627632.png

注意:不管是坚果云还是百度网盘同步空间,如果使用其本地图床,那么在手机端是无法正常显示md里图片的……,因此后面才需要配置公网图床。

阿里云oss&腾讯云cos&七牛云方式搭建

  • 问题:如果自己后续md图床数据量增大,那么oss计费也是比较贵的;
  • 问题:要解决oss被恶意刷流量问题?

防盗链??

鉴权??

限制refer??

设置白名单??

gitee/github搭建图床

问题:当gitee/github里的图片数据量很大时,无法pull/push数据,并且网速也很慢,不推荐这种方法;

群辉方式搭建

使用群辉nas搭建图床推荐吗

gpt-2023.8.23回答

使用群晖 NAS 搭建图床是一个不错的选择。群晖 NAS(Synology NAS)提供了一个易于使用的操作界面和丰富的应用程序生态系统,使您可以轻松地搭建自己的私有图床。

以下是使用群晖 NAS 搭建图床的一般步骤:

  1. 设置群晖 NAS:首先,您需要购买并设置好群晖 NAS。确保您已配置网络连接和访问权限。
  2. 安装应用程序:在群晖 NAS 的应用商店中找到适合的图床应用程序,例如 Photo Station、Moments 等。根据应用程序的说明进行安装和设置。
  3. 上传图片:一旦安装和设置好应用程序,您可以通过电脑、手机或其他设备上传图片到群晖 NAS 上的图床应用程序中。
  4. 获取图片链接:上传成功后,应用程序会生成每张图片的唯一链接。您可以从图床应用程序中获取这些链接,用于在 Markdown 或其他地方引用图片。
  5. 引用图片:将生成的图片链接插入到您的 Markdown 文件中或任何需要引用图片的地方。

使用群晖 NAS 搭建图床的好处是,您可以轻松地将图片存储在自己的本地服务器上,完全掌握数据的安全与隐私。此外,群晖 NAS 还提供了许多其他功能,如备份、文件共享等,使其成为一个功能强大的家庭网络存储解决方案。

希望这个建议对您有帮助!如果您有其他问题,请随时提问。

那么它的缺点呢

gpt-2023.8.23回答

尽管群晖 NAS 拥有多个优点,但也有一些潜在的缺点需要考虑:

  1. 成本较高:相对于其他图床解决方案,群晖 NAS 的成本较高。它包括 NAS 硬件设备的购买成本以及可能需要付费的应用程序和插件。
  2. 技术要求:搭建和管理一个群晖 NAS 需要一定的技术知识。您需要了解一些网络配置、存储管理和应用程序设置方面的基础概念。
  3. 面向家庭或小团队:群晖 NAS 的设计初衷是为家庭用户或小型办公室提供文件存储和共享功能,因此其性能和扩展性可能有限。对于大型企业或需要处理大量数据和高并发访问的场景,可能需要更专业的存储解决方案。
  4. 依赖网络连接:群晖 NAS 通常需要稳定的网络连接才能正常工作。如果遇到网络故障或互联网连接问题,可能会对访问和管理图床造成影响。
  5. 电力消耗和噪音:由于群晖 NAS 是一个运行24/7的设备,它可能会产生一定的电力消耗和噪音。这需要考虑到设备的放置位置和环境。

这些缺点并不意味着群晖 NAS 不是一个好的选择,而是需要根据您的具体需求和预算来评估。如果您需要更高级的功能和可扩展性,或者对技术方面感到不太熟悉,可能需要考虑其他图床解决方案或咨询专业人士的建议。

希望这些信息能对您有所帮助!如果您有其他问题,请随时提问。

问题:md图床放自己群辉里行不呀?(不建议:网络和性能的问题)

就目前自己的docusaurus知识库网站,自己体验起来还不错哦。😘

2023年11月11日

img

img

img

img

自己用:

img

其它方式

案例:Lsky Pro(兰空图床)

2023年11月11日 群辉大佬

img

2024年3月17日收藏

Lsky Pro

参考文章

https://www.ywsj365.com/archives/docker-da-jian-yi-ge-shu-yu-zi-ji-de-tu-chuang

image-20240317071406110

案例:图床:缤纷云Bucket + 初柒工坊图床 + SKY CHART BED

img

img

案例:EasyImage图床

2023年9月8日记录

img

搭建参考链接

https://blog.csdn.net/qq_24694139/article/details/132425616

img

https://zhuanlan.zhihu.com/p/648359245

img

https://post.smzdm.com/p/akk76n7k/

img

gpt-如何搭建自己私有的markdown图床

gpt-2023.8.23回答

要搭建自己的私有 Markdown 图床,您可以按照以下步骤进行操作:

  1. 选择一个托管图片的服务器:您需要选择一个服务器云存储服务来托管您的图片。一些常见的选择包括自己搭建的服务器、云存储服务如Amazon S3、腾讯云对象存储等。
  2. 配置存储空间:根据您选择的服务器或云存储服务,按照相应的说明创建一个存储空间(bucket)。
  3. 配置访问权限:确保您的存储空间只允许私有访问,这样只有您拥有的链接可以访问图片。
  4. 上传图片:将您的图片上传到存储空间中。这可以通过调用相应的上传API、使用命令行工具或者使用一个可视化的管理工具来完成。
  5. 生成图片链接:一旦图片上传成功,您需要生成访问这些图片的链接。这些链接通常包含一个唯一的标识符,以便在 Markdown 中引用。
  6. 编辑 Markdown 文件:在您的 Markdown 文件中,使用生成的图片链接来引用您的图片。根据不同的 Markdown 解析器,链接的格式可能有所不同。

请注意,上述步骤中的具体细节取决于您所选择的服务器或云存储服务,因此您可能需要查阅相应的文档或参考其提供的 API。

搭建自己的私有 Markdown 图床需要一定的技术知识和服务器管理经验。如果您不熟悉这些概念,可能需要考虑使用现有的图床服务或咨询专业人士的帮助。

希望以上信息对您有帮助!如果还有其他问题,欢迎继续提问。

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240711101911622

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240804075128231

🍀 博客:

http://blog.onedayxyy.cn/

image-20240804075845906

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

往期推荐

我的开源项目:

https://wiki.onedayxyy.cn/docs/OpenSource

玩转Typora+Docusuaurus-起始页交流群:

image-20240804095452509

引用

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

图床阅读需 15 分钟