我将 nvda 远程服务器安装在 /data/nvdaRemoteServer_linux_amd64
目录下。使用的是 tech10 编写的 golang 版本的 nvda 远程服务器。
使用 caddy 服务器位域名获取的证书作为 nvda 远程服务器的证书。同时实现证书续期后,自动重启 nvda 远程服务器。
我位 nvda 远程服务器分配的域名是 rs.qt.hk
首先创建 rs.qt.hk 这个网站。在 qt.hk 这个域名的控制台添加 rs.qt.hk 这个二级域名,将他绑定到服务器的ip。
接着创建网站配置, 将下面内容保存为 rs.qt.hk.conf
, 然后复制到 /data/caddy/conf/vhost
目录下,这是 caddy的网站配置所在的目录。
关于如何安装 caddy 可以参考我另外的文章,地址是: https://www.qt06.com/post/417/
rs.qt.hk {
root * /data/www/rs.qt.hk
encode gzip
header -Server
# file_server
log {
format json {
time_format "iso8601"
}
output file /data/caddy/log/rs.qt.hk.log
}
}
接着我们在 /data/www
目录下新建 rs.qt.hk
目录,在该目录下新建 index.html
文件,里面写入你想展示的内容,比如介绍 你提供的 nvda 远程服务器的信息。
之后,我们在 bash 下输入systemctl reload caddy
来刷新 caddy 配置。
这样,我们的网站就建好了。可以在浏览器输入 rs.qt.hk 访问了。
我们在地址栏如果能听到 https://rs.qt.hk 字样,就表示已经成功启用了 https 服务,也就有了证书。接下来就可以开始安装 nvda 远程服务器了。
首先下载 nvda 远程服务器文件,并且解压,设置相应的目录和文件权限。
|
|
systemctl 配置文件
将下面内容保存为 nvdaRemoteServer.service
,然后复制到 /etc/systemd/system
目录下。
特别注意, ExecStart
那一行里 -cert-file 和 -key-file 两个参数指向的证书文件的具体路径,需要根据你使用的域名证书所在位置进行修改。
# This is a nvdaRemoteServer systemd service file.
# Modify the values for the exec parameter,
# user, group, and output for standard output and standard error.
[Unit]
Description=NVDARemote server
After=network.target
[Service]
Type=simple
User=caddy
Group=caddy
ExecStart=/data/nvdaRemoteServer_linux_amd64/nvdaRemoteServer -cert-file /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/rs.qt.hk/rs.qt.hk.crt -key-file /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/rs.qt.hk/rs.qt.hk.key -log-level=1
StandardOutput=append:/data/nvdaRemoteServer_linux_amd64/tmp/stdout.log
StandardError=append:/data/nvdaRemoteServer_linux_amd64/tmp/stderr.log
Restart=always
RestartSec=10s
TimeoutStopSec=10s
[Install]
WantedBy=multi-user.target
接着在 bash 下 输入 systemctl enable nvdaRemoteServer
来注册服务,然后用 systemctl start nvdaRemoteServer
来启动服务。
在 /data/nvdaRemoteServer_linux_amd64
目录下新建一个名为 restartnvdaRemoteServer.sh
的文件,将下面内容粘贴进去:
|
|
接着将该文件的权限改为 0755,可以在 winscp里修改,也可以直接在 bash下输入下面命令:
|
|
接着修改 caddy的配置文件,位于 /etc/caddy/Caddyfile
, 在全局配置末尾,也就是最后一个花括号的前面,加入下面内容:
events {
on cert_obtained exec touch /data/nvdaRemoteServer_linux_amd64/tmp/need-restart
}
接着添加计划任务,每隔十分钟执行一次,在 bash 下运行下面命令:
|
|