经过各种图床折腾之后,发现可以在自己的服务器中直接建立 nginx 站点作为专门的图床使用,本文记录相关内容。
背景 {#背景}
- 在折腾 chevereto 自建图床的过程中,发现核心功能可以剥离出来直接用 nginx 维护实现
宝塔方法 {#宝塔方法}
宝塔 {#宝塔}
- 在宝塔面板配置需要安装宝塔面板,并配置 Nginx 环境
- 建立站点
Nginx 服务器 {#Nginx-服务器}
- 直接配置 Nginx 文件
- 重启 nginx
读取图床数据 {#读取图床数据}
- 在网站根目录存放的数据已经可以直接访问了,链接规则
- 在站点根目录存入图像
1.png
- 直接访问
web-url / 1.png
即可直接看到图像内容
- 软链接文件也是可以读取的
Nginx Docker 方式 {#Nginx-Docker-方式}
准备 Nginx 容器 {#准备-Nginx-容器}
安装好 Docker 后执行命令
创建 nginx 初始容器
为了容器可以方便、安全地维护,将容器中 /etc/nginx
内容拷贝到宿主机,我放到了 /share/nginx_conf
文件夹
关闭容器(由于 --rm 会自动删除)
重新创建容器:
- -p: 端口映射,建议多映射几个端口,后期添加很麻烦
- -d: 后台运行
- -v: 磁盘映射
此时在 /share/html 中创建 index.html
文件,写入内容:
访问本机IP 的 8080 端口,可以看到 Hello World 字样
说明目前为止一切顺利,Nginx 正常运行
那么此时理论上就可以当成图床用了,将一张图像放到 /share/html/ImageHost
下,起名字 test.jpg
访问地址:
理论上的图床就搭好了,这里依赖的是 Nginx 容器中默认的服务器配置 /etc/nginx/conf.d/default.conf
文件,也就是我们当前宿主机中 /share/nginx_conf/conf.d
文件:
当前仅能通过访问 nginx 容器的 80 端口通过 http 协议获取图像,如果需要 https 访问需要准备证书,放到 /share/ssl
文件夹中:
并在 /share/nginx_conf/conf.d
文件夹下添加配置文件 iamgehost_ssl.conf
:
配置好后重启 ngxin 容器,访问 https://uipv4.zywvvd.com:33030/test.jpg
https 图床配置完成!
抛弃了宝塔面板,更加自主可控。
参考资料 {#参考资料}
- https://www.csdn.net/tags/NtjaEg3sMDQ5MzMtYmxvZwO0O0OO0O0O.html
- https://www.ruanyifeng.com/blog/2018/02/nginx-docker.html
文章链接:
https://www.zywvvd.com/notes/hexo/website/33-nginx-imgbed/nginx-imgbed/