缘起
想要尝试一下 Memos 的移动客户端: moe memos
. 但是发现自己部署后,没有办法连接到服务器, 苹果应用似乎强制要求你访问的服务器具备 ssl
证书.
前置准备
- 购买一台云服务器并通过 docker 安装 memos
- 域名
- 申请 SSL 证书
SSL 证书的申请步骤各个云服务器厂商都有教程,在此不做赘述,直接申请免费的即可. 申请完毕后,下载对应的证书文件. 这里可以使用 scp1 命令来将下载到本地的 ssl 证书上传到云服务器.
nginx
首先需要编写一下 nginx 配置文件. events
和 http
这两个是必须要编写的.不然会运行失败.
我的 memos
运行在 5230
端口,所以这里监听 5231
端口,并将请求转发到 5230
端口.
需要注意 proxy_pass
这里的 ip 地址应该使用的是你云服务器的私有 ip 地址. 直接使用 localhost 可能导致 nginx 运行成功,但是无法成功转发请求.
events{
worker_connections 1024;
}
http{
server {
listen 5231 ssl;
# 监听 5231 端口并启用 SSL
# server_name crowds.top;
# 替换为您的域名
# SSL 证书路径,路径会在后续运行命令中的参数挂载
ssl_certificate /etc/nginx/ssl/nginx_ssl/crt.crt;
# SSL 私钥路径
ssl_certificate_key /etc/nginx/ssl/nginx_ssl/key.key;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:5230;
# 代理到主机的私有 ip 的 5230 端口
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;
}
}
}
下面的脚本是 ngnix 的运行命令. 这里注意, 我们在启动时,将配置文件和 ssl 文件地址挂载到了 /etc/nginx/
目录下. 所以在配置文件中,对应的目录也应该是 /etc/nginx/
目录下的地址.
#!/bin/bash
docker run --name memNginx \
-p 5231:5231 \
-v /root/nginxConfig/nginx.conf:/etc/nginx/nginx.conf \
-v /root/mySsl/:/etc/nginx/ssl \
-d nginx
执行后可以使用 docker ps -a
命令查看对应的容器是否运行成功,如下结果,则表示运行失败. 需要使用 docker logs <CONTAINER ID>
来查看是哪里出了问题.
CONTAINER ID STATUS
0b36fbd3438a Exited (1) 12 hours ago
APP 成功登录并访问:
本地 SSL 证书
配置过程中,了解到还有一种做法,如果只是在家使用,似乎可以配置本地 SSL 文件. 具体过程我不太了解. 但是似乎更简单.
scp
Linux 中的
scp
用于文件 ==远程传输==-
Linux 中的
scp
命令的格式为-
scp /path/to/file.txt remoteuser@ip.xx.xx.xx:/path/to/folder/
-
↩
-
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于