4 爱在南信

尚未进行身份认证

我要认证

https://mojun.me

等级
TA的排名 7k+

office文件在线预览

需求背景    最近学妹她们那边有一个项目类似在线网盘的东西,支持文件上传保存。其中除了普通text文本以外,还有如office文件word、excel、ppt等文件,并且提供在线预览的功能。用户能够在线预览文件内容,并且分享预览链接出去的word不能下载到这个文件,不能暴露实际文件URL路径。她那边不知道怎么来处理这个问题,所以自然问了我一下。恰好之前这块我也做过一些这方面的项目,罗列几个处理方案。解决方案1.openoffice转化  

2020-06-14 00:05:34

2019安装k8s详细教程

前言学习k8s的第一步肯定是安装进行实操。但是对于生产环境搭建一个高可用的k8s集群其实还是有点挑战难度的,特别是非专业运维开发人员。因为要涉及到的方面很多,默认配置都不能用于生产环境,性能调优,安全验证等等都是必不可少的。对于入门者来说的话,第一步安装其实有时候已经把一些人挡在了门外。自己也是费了一点功夫,才搭建了在本地能测试的k8s集群,用来学习。其中遇到了一些坑,所以记录一下,希望能帮助...

2019-03-09 22:14:16

FastCGI协议内容

cgi或者fastcgi协议的定义: Webserver(web服务器软件如nginx httpd等)与真实后台处理请求的程序之间通信的一种约定规范 找了一篇文章把fastcgi协议讲得比较清楚,记录一下。 原文地址:https://www.cnblogs.com/itbsl/p/9828776.html#%E5%86%8D%E7%9C%8B-fastcgi-%E5%8D...

2020-04-27 14:56:35

采用xhprof扩展对PHP项目进行性能分析

背景  由于我们的项目是另外一个团队的server端,给他们提供的2个接口他们偶尔反应程序调用超时,他们设置httpClient的超时时间为10s。一般情况下来说我们程序一定要保证在5s以内就要返回response给客户端了,所以我们想分析一下我们的程序到底是哪个模块或者函数调用上耗时严重. 一般我们最容易想到的方法就是在某个方法前拿到开始时间戳,然后在方法执行完以后得出结束...

2020-04-09 21:40:45

git中rebase(变基)和merge(合并)区别

简介  以前用git基本上针对git flow以及基本的git操作命令基本上满足日常开发需求,其实也没必要过于深究,常用命令80-90%基本上满足我们正常使用了。 但是其实很多人,包括我自己,git的官方文档基本没扫完一遍,所以抽时间其实几个小时也就能看完的事情。 其中在合并branch的时候,网上有很多关于使用git rebase 还是 git merge有无数篇文章进...

2020-03-23 13:37:27

Protobuf数据交换格式

简介  ProtoBuf(Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。以 .proto为后缀,有自己的编译器 protoc, protoc2 和 p...

2020-01-08 00:28:30

gRPC简介和实践

简介  gRPC是Google主导的一个高性能,跨语言的RPC(远程过程调用)框架。官网: https://grpc.io/  支持多种常见的流行编程语言,如C++ Java Node.js PHP Python等等。 其实从本质上来看到gRPC其实是基于使用protobuf做为数据传输格式,借助HTTP2协议通信做的一个RPC框架,只要任何语言实现了g...

2020-01-05 18:28:07

2020Jenkins学习笔记

背景​ DevOps其实是描述的是从开发人员push代码或者上线打tag发布新版本的时候,会经过一些列单元测试,集成测试,自动部署等等一系列步骤转化为自动化的一个过程。只要这些自动化脚本都做好了, 那么就节约了很多的物力和财力。 程序员只要关心自己的业务代码即可, 后面一些列繁琐的事情,打包,更新镜像等等都不用关心, 也无须关心,因为流程都是一样的,步骤也是一样的,就让脚本帮我们做就好了...

2019-12-09 16:09:44

https跳过证书校验底层原理

背景  大家可能遇到过爬虫或者curl某个https站点,由于站点TLS证书过期或者使用自签证书,curl或者浏览器校验不通过,导致不能正常访问。 所以类似什么Java中怎么跳过https证书校验,php怎么跳过,python怎么跳过等等问题全网遍地都是。 但是你知道跳过https证书底层到底干了什么事情呢? https不懂的同学可以先简单看我的一篇文章: http...

2019-11-26 18:05:17

K8S中Pod内部容器通信原理

1.docker容器网络模式1.1 默认bridge桥接网络   默认分配docker0网桥网段上的ip给容器, 每个容器的network namespace都是相互隔离的。docker自身生成一个veth pair(虚拟网卡对) 一端放在docker0网桥上, 一端放在容器内部。通过docker inspect 容器查看容器网络模式信息:网络详情:...

2019-11-21 11:50:59

ssh端口转发(隧道技术)

1.本地端口转发 假设有以下场景,本地客户端A, 远端服务器有B和C, B和C处于同一个内网,且 B上配置了公网ip,C只有内网ip。 那么现在存在一个需求, 我想让A能够访问到C上面部署的一个nginx(监听80端口)的服务。那么怎么解决这个问题? (前提: A能够发起ssh连接到B服务器上)。 如图所示,可以使用ssh提供的本地端口转发技术来实现。(红色箭头表示数据返回流...

2019-11-13 13:45:54

golang之gin框架学习笔记

golang很多web框架如beego echo 还有gin。 之前公司听同事说后面他们的项目使用gin去重构代码,顺带自己在学golang, 与其纠结选择学习哪个框架,既然公司有人在用,那他们应该是做了一些调查和分析决定的,所以就挑了gin。其实只要掌握一门web框架,其他框架学习起来上手也很快了。gin框架个人觉得上手是比较快, 个人喜欢前后端分离,所以gin专门用来写api接口即可,...

2019-11-03 21:54:27

lua入门与学习笔记

由于nginx采用异步非阻塞io模型, 可以高效的处理并发请求,nginx还可以加入一些模块,其中就包括lua模块。 这个模块非常强悍和轻巧,犹如瑞士军刀,小巧精悍。nginx在做反向代理以及web服务器,是拿到http第一手源数据,那么我们可以在nginx这一块针对例如url转发,头信息过滤校验, referer校验, 反向代理拦截,安全校验,网关,认证等等。。。。通过加入lua模块,...

2019-10-27 13:59:27

php源码逆向工程转化为UML类图

通过php源码导出uml类图能够方便我们查看整体项目的类结构,方便我们去阅读源码以及理解。找到一个项目, phuml使用php代码扫描php代码文件,通过extends implements以及注解等形式, 描绘出DOT格式的画图文件,再通过Graphviz软件将DOT图形文件转化为png图片格式,大致原理应该是这样的。 1.项目通过composer安装: https://pack...

2019-10-11 15:30:09

由于已经具备PHP基础转Golang学习笔记

golang近几年由于docker k8s等开源项目实在是火得不行,很多国内大厂也都有使用go语言对现有项目或者新项目进行使用。典型国内最早期的粉丝当属七牛云了,许式伟的<<Go语言编程>>这本书也是很多golang入门者的必备书籍。不过,就我个人而言,书籍主要还是以作为工具书或者查缺补漏来翻阅,学习的话自己找一些教程视频或者一些快速入门的网上教程看,感觉比直接看...

2019-09-12 00:51:46

Redis通信协议

1.前言  redis日常开发多多少少都有使用过。不过大多数都停留在get set等基本操作,存数据,取数据等简单操作。对于redis的通信协议基本上都没怎么留意过。了解相对底层的东西,有助于我们更好的使用redis以及排查错误。2.redis通信协议的基本内容  协议,无外乎就是信息内容的格式要client和server端遵守的某种规范。这个我们...

2019-07-02 23:25:08

ssh设置通过http代理连接远程主机

需求背景存在ABC三台主机,由于安全因素或者其他,A不能直接与C通信,反之亦然。但是存在B可以与A,C通信。则现在需要在A上通过ssh,假设B以及搭建好一个http代理,专门来代理ssh访问C的服务。具体方法分为2种常见做法:1.通过软件corkscrew作为proxy的客户端2.通过ncat作为proxy的客户端不过最终本质是一样的,ssh通过命令ssh-o...

2019-06-11 10:31:15

全网最详细解释memcached中的flags含义

前言复习memcached中,发现很多人对set/add 语法中设置的 flags参数理解不是很透彻, 大家人云亦云。 查资料从来不对别人的材料加以自己的理解写出来,那其实有毛用。百度出来的文章如出一辙,完全是同一篇文章。总是说flags参数来表示是否压缩数据。。。。我怀疑很多人也真实人云亦云,自己没有思考过。flags参数理解    flags这个参数其实是让客户端...

2019-05-22 22:04:57

关于linux实用命令学习以及重要知识点

前言本来这几天复习linux常用的命令,自己本来想写上一些记录的笔记。不过在github上搜到一个仓库,写得还挺全面的。和自己复习的内容所差无几,所以就没必要在博文中写出来了,重复同样的劳动,何况自己写得不比别人写得好到哪去。仓库地址: https://github.com/Nick233333/phper-linux-gitbook我的感悟linux里面一些命令以及知识点,有必要写...

2019-05-18 13:50:10

优化Dockerfile最佳实践

1.原文参考地址: https://blog.fundebug.com/2017/05/15/write-excellent-dockerfile/2.总结原文总结如下:对于其中"编写.dockerignore文件","合理调整COPY与RUN的顺序"不太好理解,其他的都还挺好理解。 该条本质上是对dockerfile在build时利用缓存的原因。实验: 执行相同的docke...

2019-05-01 23:35:23

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。