在正式部署到自己的云服务器之前,我习惯先在本地测试一番,没问题后再搬到云端,在这里分享一下我在本地 Mac 上测试的经验。以下思路放在云服务器上部署也是类似的,只不过多了一步 SSL 的相关配置。我没有使用 docker-compose,这样一步一步启动和配置更直观一点。
第一步 :启动思源笔记容器
docker run --name "siyuan" \
-e LANG=zh_CN.UTF-8 \
-e LC_ALL=zh_CN.UTF-8 \
-v ~/Documents/SiYuan:/root/siyuanworkspace \
-d b3log/siyuan --servePath="Mac在局域网内的地址:9000" --workspace=/root/siyuanworkspace
# 说明:使用9000端口是为了通过下面nginx暴露的9000端口,在局域网内进行访问该服务
第二步 :启动 Nginx 容器,做反向代理。只要能在局域网内能访问到,那么搬到云端后,使用域名 +DNS 解析就没问题了。
# 先启动一个nginx容器
docker run -d -p 9000:80 --name nginx nginx
# 复制配置文件到本机目录
docker cp nginx:/etc/nginx/conf.d ~/workspaces/docker/nginx
# 删掉容器
docker stop nginx && docker rm nginx
# 重新启动一个nginx容器
docker run -d -p 9000:80 --name nginx -v ~/workspaces/docker/nginx/conf.d:/etc/nginx/conf.d nginx
第三步 :修改 Nginx 里的配置文件,进行反向代理。
# 修改配置文件(文件内容见下面)
vi ~/workspaces/docker/nginx/conf.d/default.conf
# 进入docker容器,重新加载nginx
docker exec -it nginx bash
nginx -t
nginx -s reload
配置文件内容如下,注意把 IP 地址换成思源笔记容器的 IP 地址,查看容器的 IP 地址:docker inspect siyuan | grep IPAdd
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://172.17.0.2:6806;
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 REMOTE-HOST $remote_addr;
}
location /ws {
proxy_pass http://172.17.0.2:6806;
proxy_read_timeout 60s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于