docker 部署蘭空圖床#
最近圖床 vps 到期,遷移的時候發現原來的開源版 chevereto 圖床 docker 版直接沒了,直接刪庫逼氪了。因此所幸不用了,換一個國產的,雖然蘭空圖床的開源版也不更新了,但起碼 docker 可以拉到,自用也沒有問題,而且還可以不用 mysql,小機器可以不用 mysql 肯定首選。
1.docker 拉取鏡像#
鏡像地址:https://github.com/HalcyonAzure/lsky-pro-docker
我使用 docker-compose 部署,並且不使用 mysql,使用 sqlite。如有其他變動可參考作者倉庫內的 docker-compose 文件。
解釋一下端口,我這裡有點顛倒,HTTPS_PORT 是提供給 https 使用的端口,WEB_PORT 是 http 的端口,https 的端口默認自帶的是自簽證書。我使用的是 NGINX 代理 WEB_PORT 端口,目前沒有什麼問題。正常按照手冊 NGINX 對接的應該是 HTTPS_PORT 端口,注意區分。
version: '3'
services:
lskypro:
image: halcyonazure/lsky-pro-docker:latest
restart: unless-stopped
hostname: lskypro
container_name: lskypro
environment:
- HTTPS_PORT=8088
- WEB_PORT=8089
volumes:
- $PWD/web:/var/www/html/
ports:
- "9080:8088"
- "9081:8089"
networks:
- lsky-net
2. 配置 NGINX 開啟 https#
我的 NGINX 配置文件
server {
listen 443 ssl;
server_name xxx.com;
#證書
ssl_certificate /root/.acme.sh/xxx.com_ecc/xxx.com.cer;
ssl_certificate_key /root/.acme.sh/xxx.com_ecc/xxx.com.key;
access_log /var/log/nginx/lskylog/access.log main;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_pass http://127.0.0.1:9081;
proxy_redirect off;
client_max_body_size 100m;
client_body_buffer_size 128k;
}
}
其中 “client_max_body_size 100m;” 這一串是避免上傳圖片過大導致 NGINX 中斷傳輸的。這個容器默認修改了 phpini 文件中上傳限制,但是上傳個幾兆圖片還是報錯的話,需要考慮是不是 NGINX 這邊限制導致。