SftpGo:一款高性能的sftp server服务
SftpGo是一款高性能、功能齐全、易用可配置的一款sftp server 服务,基于go开发。目前在linux、macos下均可以稳定运行(windows个人未测试)。数据可以持久化到主流的数据库,诸如Mysql、PostgreSQL、Sqlilte.
sftpgo主要组成
- 服务端主程序: sftpgosever
- cli脚本: sftpcli
数据目录
- conf存储服务配置文件
- data创建sftp用户目录
- backups存储应用备份数据
本次基于k8s运行服务、mysql5.7做持久化存储、腾讯云NFS服务做数据目录、configmap挂载配置文件、nginx stream提供域名映射tcp访问
构建镜像
直接拉取
docker pull taylordang/sftpgo:v1.0
本地基于Dockerfile构建
查看具体文档: [https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine](https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine)
构建脚手架
构建脚本: [https://github.com/dtcka/sftpgo/blob/master/docker/rest-api-cli/Dockerfile](https://github.com/dtcka/sftpgo/blob/master/docker/rest-api-cli/Dockerfile)
标准配置文件
{"sftpd": {"bind_port": 2022,"bind_address": "0.0.0.0","idle_timeout": 15,"max_auth_tries": 0,"umask": "0022","banner": "","upload_mode": 0,"actions": {"execute_on": [],"command": "","http_notification_url": ""},"keys": [],"kex_algorithms": [],"ciphers": [],"macs": [],"login_banner_file": "","setstat_mode": 0,"enabled_ssh_commands": ["md5sum","sha1sum","cd","pwd","scp"],"keyboard_interactive_auth_program": "","proxy_protocol": 0,"proxy_allowed": []},"data_provider": {"driver": "mysql","name": "sftpgo","host": "xxxxxx","port": 9999,"username": "sftpgo","password": "xxxxx","sslmode": 0,"connection_string": "","users_table": "users","manage_users": 1,"track_quota": 2,"pool_size": 0,"users_base_dir": "","actions": {"execute_on": [],"command": "","http_notification_url": ""},"external_auth_program": "","external_auth_scope": 0,"credentials_path": "credentials","pre_login_program": ""},"httpd": {"bind_port": 8080,"bind_address": "0.0.0.0","templates_path": "templates","static_files_path": "static","backups_path": "backups","auth_user_file": "","certificate_file": "","certificate_key_file": ""}
}
运行应用
以上服务配置准备完成之后,运行容器会在数据库中自动生成对应的表
提供服务外部入库
1. 设置内网服务入口
apiVersion: v1
kind: Service
metadata:name: sftpgonamespace: sftp
spec:clusterIP: xxxxexternalTrafficPolicy: Clusterports:- name: 8080-8080-tcpnodePort: 31807port: 8080protocol: TCPtargetPort: 8080- name: 2022-2022-tcpnodePort: 30865port: 2022protocol: TCPtargetPort: 2022selector:k8s-app: sftpgoqcloud-app: sftpgosessionAffinity: Nonetype: LoadBalancer
status:loadBalancer:ingress:- ip: xxxx
2. 设置外部服务入口
- nginx配置文件 ``` apiVersion: v1 data: nginx.conf: |- user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } stream { server { listen 2022; proxy_pass sftpgo服务对应的内网ip:2022; } } kind: ConfigMap metadata: name: tcp-config namespace: sftp
##### 3.测试下服务状态以及数据目录权限
![image.png](https://img-blog.csdnimg.cn/20200419100513838.png)
<br />测试ok:数据权限UID GID需要设置为1003.<br />##### 4. 设置域名解析到nginx的externalIps即可实现域名访问
![image.png](https://img-blog.csdnimg.cn/2020041910051459.png)---
<br/>
<br/>
附:
sftpgo服务源码:https://github.com/dtcka/sftpgo/tree/master/docker/sftpgo/alpine sftpgo容器相关镜像:https://hub.docker.com/repository/docker/taylordang/sftpgo sftpgo脚手架:https://hub.docker.com/repository/docker/taylordang/sftp-api-cli
```
更多内容请访问【云原生建筑师】https://blog.dtcka.com
SftpGo:一款高性能的sftp server服务相关推荐
- 六款小巧的HTTP Server[C语言] - 贵贵的博客 - 开发|架构|开源|共享
六款小巧的HTTP Server[C语言] - 贵贵的博客 - 开发|架构|开源|共享 六款小巧的HTTP Server[C语言] keminar 发表于 2010-02-05 23:14:41. 发 ...
- 【万字长文】Dubbo 入门总结 ,一款高性能的 Java RPC 框架
这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在 ...
- 使用 Docker 和 Nginx 打造高性能二维码服务(二)
使用 Docker 和 Nginx 打造高性能二维码服务(二) 三年前我曾写过一篇<使用 Docker 和 Nginx 打造高性能的二维码服务>,时过境迁,容器软件.基础系统.Nginx. ...
- python分布式对象存储_推荐:一款分布式的对象存储服务
最近公司在准备内部数据上云,并且内部数据库每天的数据量很大,需要采用大数据存储的方案. 方案调研 每个程序技术在实现之前,需要进行开源产品的调研,适合自己产品的技术方案才是最好的. 需求 我们需要处理 ...
- sql 服务器停止运行,3.1.1 启动、停止、暂停和重新启动SQL Server服务
第3章 SQL Server 2005服务器管理 对SQL Server 2005数据库服务器的配置与管理,是SQL Server 2005数据库的一般性操作.SQL Server 2005提供了一 ...
- 如何设计一款高性能分布式锁,实现数据的安全访问?
查看原文:如何设计一款高性能分布式锁,实现数据的安全访问? 随着互联网技术的飞速发展,分布式已经成为一个绕不开的话题,分布式环境下,"高并发访问共享资源"的场景并不少见,带来的问题 ...
- SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者
文章目录 目录 前言 一.启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一:利用cmd启动SQL server服务 3.方法二:利用SQL Server配置 ...
- php mysql弹幕_如何使用PHP构建一个高性能的弹幕后端服务
如何使用PHP构建一个高性能的弹幕后端服务 随着WEB2.0的流行,现在很多网站都流行使用"弹幕"这种形式来实现互动. 弹幕(barrage),中文流行词语,原意指用大量或少量火炮 ...
- 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求
当前位置:我的异常网» Sql Server » sql server 服务启动后 自动关闭 求 sql server 服务启动后 自动关闭 求 www.myexceptions.net 网友分享于 ...
最新文章
- Java IO流-File类
- Linux基础命令---shutdown
- Vim与clang-format
- 中职高级计算机操作员,计算机操作员专业排行榜
- C++vector容器-容量和大小
- java-linux-eclipse配置
- mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表
- C#位运算讲解与示例
- 使用带Arduino IDE WIZ820io的ATmega1284P
- 计算机日常英语,计算机英语的常用句子
- 工具:sql server profiler(分析器)
- Properties文件操作
- 真香啊,手把手教你使用 Python 获取基金信息
- 针对Win10 Tensorflow-2.x 训练 线程冻结(假死、卡住、几个epoch后、中途停滞、CPU占用0%) 等问题的排查总结
- gdi与gdi+绘图效率_.NET和GDI +进行绘图[第1部分:基础知识]
- 一起了解Windows——用Win10自带工具录制视频
- 【安卓Framework学习】Wifi框架学习之热点评分机制
- 手动实现表格分页功能
- x265笔记_4_CompressCTU源码分析
- srcollTop、clientHeight、scrollHeight详解