个人网站上搭建了有Blog、Git等服务,均是通过nginx反代,以子目录形式提供服务。因此这些服务是可以共用一个https证书的。
而cloudreve就麻烦了,目前没有找到以子目录形式提供服务的办法,只能先以子域名的方式搭建。
证书的申请也得添加一个子域名证书,好在acme.sh申请Let's Encrypt时,支持多域名证书。
申请了Let's Encrypt后,关键是后续要定时更新,而cloudreve服务也不能停,因此只能在nginx的配置上想办法了。
如下是cloudreve在nginx的反代配置,应该支持同时运行cloudreve服务、证书在后台自动续期。
server {
listen 80;
listen [::]:80;
server_name cloudreve.XXX.cn;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cloudreve.XXX.cn;
include /YYY/etc/nginx/sites-conf/https.conf;
include /YYY/etc/nginx/sites-conf/common.conf;
# 支持Let's Encrypt申请证书
location ^~ /.well-known {
# 使用与主网站一样的路径
root /YYY/web;
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
return 404;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5212;
# 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
# client_max_body_size 20000m;
}
}