nginx+http+frp实现内网markdown图片服务器

背景

  • 问题:使用markdwon写文档的时候,由于场景需要,可能需要将文件到处拷贝,如果文件中含有图片,这个时候显示不出来,就需要一个公共的图片服务器了
    (比如我希望使用markdown能直接在本地用atom编写,然后发表在任何博客上,然后在为知笔记也保存一份),这时候我们可以使用拥有公网的服务器搭建图片服务器
    ,由于自己有一个二手电脑在家里充当服务器,但是没有公网ip(房东的网线),所以还需要做内网穿透。
  • markdown插入图片痛点解决:
    1. 可使用各大论坛的markdown编辑器(csdn等)插入图片功能生成外链,copy下来即可。
    2. 可利用各大外网服务器搭建自己的图片服务器。
    3. 可直接利用七牛云或者其他对象服务,就行了。
    4. 可以利用闲置电脑搭建图片服务器。本文讲的是这种做法,主要就是为了方便自己以后定制功能,瞎折腾。

介绍

  • nginx:这里利用nginx搭建一个图片服务器,使得上传的图片能在任何地方访问到。
  • http:本质上也可以使用nginx+ftp的选型,但是由于http可以基于web做更多的自定义,所以牺牲了一些速度,选择了http。这里使用的是springboot搭建
    简单的文件上传
  • frp:这里frp的作用在于做内网穿透,比如你有一台没有用的电脑想做服务器,但是没有公网ip的时候,可以使用frp做穿透。(如果是自己拉电信的网络,有另外的解决方法
    ,因为不是专线的电信可以打10000申请公网ip,但是会不定时更新,所以自己写一个python脚本监控ip变化时更改绑定的域名解析就可以了。)

nginx

#增加用户jehadftp,指向目录/home/jehadftp,禁止登录SSH权限
useradd -d /home/jehadftp -g ftp -s /sbin/nologin jehadftp
passwd xxx

附上nginx的简单配置

http{
  server {
          listen       8090;
          #server_name配上自己的域名,以便外网访问得到图片
          server_name  192.168.1.10 www.yourdomain.com;

          location / {
             root /home/jehadftp;
             index index.shtml index.html index.htm;
          }
      }
}

http

github地址:https://github.com/jehad-fang/springboot-markdown-img

这个只是简单的文件上传,用什么去写都行。

frp

frp文档:https://github.com/fatedier/frp/blob/master/README_zh.md

  • 服务端(即你还需要一台拥有公网的服务器,可以国内腾讯云各种做优惠的时候买,基本几块钱/月):
[root@VM_0_8_centos frp_0.19.1_linux_amd64]# cat frps.ini
[common]
bind_port = 7000
  • 客户端:
[root@localhost frp_0.19.1_linux_amd64]# cat frpc.ini
[common]
server_addr = 111.230.114.75
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22199
remote_port = 22199

[img-tomcat]
type = tcp
local_ip = 127.0.0.1
local_port = 8089
remote_port = 8089
# custom_domains = www.jhcoder.top

[img-nginx]
type = tcp
local_ip = 127.0.0.1
local_port = 8090
remote_port = 8090
#custom_domains = www.jhcoder.top

[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 3306
  • frp自启动
服务端(腾讯云):
vim /usr/lib/systemd/system/frps.service

###########################文件内容开始
[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/data/frp/frp_0.19.1_linux_amd64/frps -c /data/frp/frp_0.19.1_linux_amd64/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target
###########################文件内容结束

systemctl enable frps
systemctl start frps


客户端(家里内网)
vim /usr/lib/systemd/system/frpc.service

###########################文件内容开始
[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/data/frp/frp_0.19.1_linux_amd64/frpc -c /data/frp/frp_0.19.1_linux_amd64/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target
###########################文件内容结束

systemctl enable frps
systemctl start frps

最后实现的效果

  • 快速地粘贴或者上传图片,获取图片引用地址,节省文档时间。

  • 另外提供了图片查看的效果,可重复利用图片

后记

其实思路就在这里,方法有很多,一开始最主要的还是为了方便快速地写markdown文档,解决markdown插入图片麻烦的问题。

猜你喜欢

转载自blog.csdn.net/fjh872862187/article/details/80573342
今日推荐