Tom

Tom

docker部署兰空图床

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 这边限制导致。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。