Joplin 服务端升级小计
[toc]
☸ 1 引言 我目前的笔记都转移到了 joplin 这个笔记软件上 目前所使用的方法是 joplin + 自建 joplinServer 的模式使用
就在前天,更新 joplin client 后发现服务器版本落后了
于是很开森的去跟新服务器,悲剧由此开始。
☸ 2 问题所在 这次的主要问题是 在 joplinServer 的网络问题,必须要通过一个代理才能访问到本地的资源
☸ 3 折腾 ✡ 3.1 nginx docker 先用了阮一峰的笔记 来学习 nginx
的使用,感谢恰好有nginxdocker
的教程,折腾起来比本地安装更方便
dock-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 version: '3' services: nginx: image: nginx:latest ports: - 80:80 - 443:443 - 880:880 volumes: - /root/nginx/demo_01:/usr/share/nginx/html - /root/nginx/conf:/etc/nginx #---------------------------------------- # Setup network my_net #---------------------------------------- networks: - my_net networks: my_net: driver: bridge
可以看出我开放了三个端口进去,配置参考了教程
✡ 3.2 nginx config 这个笔记关键的是反向代理方向的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 server { #listen 443 ssl http2; # server_name localhost; listen 80; listen [::]:80; ssl on; ssl_certificate /etc/nginx/certs/joplin.crt; ssl_certificate_key /etc/nginx/certs/joplin.key; ssl_session_timeout 5m; client_max_body_size 50M; ssl_ciphers HIGH:!aNULL:!MD5; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; server_name 101.37.64.65; # The next line make nginx use the docker DNS # to find the Joplin container by its name # ('joplin'). resolver XXX.XXX.XXX.XXX valid=30; location /joplin/ { # The server name used here has to be the # one defined using 'container_name' in the # docker-compose.yml for the application we # want to proxy to. proxy_pass http://YYY.YYY.YYY.YYY:22300/; 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; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } }
XXX.XXX.XXX.XXX joplinservce 容器ip
YYY.YYY.YYY.YYY 公网ip (我是布置在公网服务器上的) 这个配置不是最好的配置,只是能用的版本
✡ 3.3 joplinservce docker 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 version: '3' services: db: image: postgres:13 volumes: - ./data/postgres:/var/lib/postgresql/data ports: - "5432:5432" restart: unless-stopped environment: - POSTGRES_PASSWORD=@@@@@@@@@@@@ - POSTGRES_USER=###### - POSTGRES_DB=$$$$$$$ networks: - joplin_net app: image: joplin/server:latest depends_on: - db ports: - "22300:22300" restart: unless-stopped environment: - APP_PORT=22300 - APP_BASE_URL=http://YYY.YYY.YYY.YYY/joplin - DB_CLIENT=pg - POSTGRES_PASSWORD=@@@@@@@@@@@@ - POSTGRES_DATABASE=$$$$$$$ - POSTGRES_USER=###### - POSTGRES_PORT=5432 - POSTGRES_HOST=db networks: - joplin_net - nginx_my_net networks: joplin_net: driver: bridge nginx_my_net: external: true
1 2 3 4 - @@@@@@@@@@@@ - ###### - $$$$$$$ 隐私设置
小结 对于一个不会 nginx 的人来说,我表示用的时候很抓瞎。 可以看到上面的配置设置了两个网络,这个用法参考了 Nginx反向代理的Docker 如何连接到其他应用程序? 的方法.