202204-21 Git不要只会pull和push,试试这5条提高效率的命令 NEW 前言使用 Git 作为代码版本管理,早已是现在开发工程师必备的技能。可大多数工程师还是只会最基本的保存、拉取、推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式解决。本文分享我在开发工作中实践过的实用命令。这些都能够大大提高工作效率,还能解决不少疑难场景。下面会介绍命令,列出应用场景,手摸手教学使用,让同学们看完即学会。stash官方文档git 教程描述官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。... Read More >
202204-13 使用fastcgi_finish_request 处理耗时的任务 NEW 背景我们业务中经常遇到这样的场景:比如生成文件较大的excel ,非常耗时,有可能需要5到30妙的时间,甚至更长导致浏览器连接超时。另外一个就是体验问题,用户需要长时间的等待响应的完毕,体验较差。类似的场景还有1:需要处理大的文件2:发送邮件或短信,尤其是需要循环发送邮件通知等3:调用远程耗时的api 等遇到这种情况,如果您的服务器使用的也是nginx ,那么可以考虑使用下面的函数fastcgi_finish_request();该函数的作用:理解发送响应给浏览器,这样用户的... Read More >
202204-08 PHP如何将十进制转换为十六进制?(代码示例) NEW 背景在PHP中可以通过使用内置函数dechex()或base_convert() 函数来将十进制转换为十六进制。下面本篇文章就来给大家介绍一下dechex()和base_convert() 函数是如何将十进制转换为十六进制的方法一:使用dechex()函数将十进制转换为十六进制dechex()函数是PHP中的一个内置函数,用于将给定的十进制数转换为等效的十六进制数。函数名称中的“dechex”一词代表十进制到十六进制。注: dechex()函数仅适用于无符号数。如果传递给它的... Read More >
202203-21 Redis官方可视化工具RedisInsight功能真心强大 背景最近逛了一下Redis官方网站,发现Redis不仅推出了很多新特性,而且还发布了一款可视化工具RedisInsight。试用了一下感觉非常不错,最关键的是能支持RedisJSON之类的新特性,这是第三方工具无法比拟的。今天带大家体验一下RedisInsight,确实非常好用!RedisInsight简介RedisInsight是Redis官方出品的可视化管理工具,可用于设计、开发、优化你的Redis应用。支持深色和浅色两种主题,界面非常炫酷!可支持String、Hash、... Read More >
202201-03 livego介绍、安装、使用详解 前言写这篇文章主要是因为希望找到一个简单的方式实现直播功能,在度娘上找到livego(我平时写php和前端的,不懂golang),感觉安装部署都很方便,即使不懂golang的同学,只要有一定Linux和web后端开发知识都能搭建自己的直播服务。但是livego的文档的确比较少,然后对于我这个面向搜索引擎开发的菜鸟来说,连度娘也只找到为数不多的几篇相关博客文章,所以最后只能自己看GitHub的issue和反复测试趟坑,最后打算记录一下自己的趟坑过程也分享一下给各位小伙伴,希望对... Read More >
202201-02 什么是OBS(OBS直播推流操作步骤,看完就懂) 什么是 OBS? Open Broadcaster Software 是一款好用的互联网流媒体直播内容输入作软件。 OBS 使用是否收费? 不收费,这个程序和它的源代码都是免费的。 OBS 都支持哪些操作系统? 支持 OS X、Windows、Linux 操作系统。适用于多种直播场景。满足大部分直播行为的操作需求。 一、前期准备 直播间布置 参考:直播间布置手册:https://www.yuque.com/docs/share/555b3... Read More >
202201-01 一篇文章搞清楚直播协议RTMP 说起RTMP协议,相信很多人都比较陌生,这个协议相对HTTP、HTTPS、TCP等我们常见的协议而言,我们在工作中确实较少接触它,但是对现在如火如荼的直播行业,RTMP是一个重要的协议,它在实时音视频场景中使用非常广泛,而且目前市占率很高。本文的主要内容是分析RTMP的协议,当然不是纯理论分析,这样没多大意思,还是结合实践抓包文件来具体分析,这样才能较好地理解RTMP的内涵。具体如何抓包见本文末尾的“Android抓包”模块。希... Read More >
202111-13 TCP全链接队列满的问题分析之net.core.somaxconn详解 背景最近控制台查看腾讯云服务器状态时,发现一个异常情况提示如下:该实例最近12小时内在2022-01-18 14:48出现过TCP全链接队列满的情况,为避免成为业务瓶颈,建议您检查业务健康情况。可参考文档:点击查看TCP 全连接队列满TCP 全连接队列的长度取 net.core.somaxconn 及业务进程调用 listen 时传入的 backlog 参数,两者中的较小值。若您的实例发生 TCP 全连接队列满导致丢包时,可通过以下步骤进行处理:调大内核参... Read More >
202111-13 lumen自带的redis queue注意事项 问题现象: Illuminate\Queue\MaxAttemptsExceededException/artisan in ?xxx_queue_name has been attempted too many times or run too long. The job may have previously timed out. 1.1 查找reason: 1.1.1 报错的job已执行成功,maxTries=1; 1... Read More >
202111-12 nginx中http转https的几种方式 第一种方式使用return 301如下:server { listen 80; server_name www.phpmianshi.com; return 301 https://$http_host$request_uri; access_log of... Read More >
202111-12 php中cookie的值包含加号(+)获取变成空格的问题分析 背景 最近发现有部分用户反馈,获取不到登录信息,于是进行分析分析我们的登录信息是加密存储到cookie中的,查看了下这个用户的 cookie加密信息中包含 加号“+” ,但是 php $_COOKIE 获取的时候,变成了空格,于是解密失败分析请求头中的信息发现,请求传过来的值是有 “+” 的,但是 :比如cookie中存储的 “cWEolyrQ0l63FG+YWHA” ,$_COOKIE 获取出来显示的 “cWEolyrQ0l6... Read More >
202111-11 php中foreach引用问题 背景php中foreach引用使用不当,经常引起莫名其妙的问题,建议使用完unset掉,或者尽量少用例如<?php $arr = [1,2,3]; foreach($arr as &$value) { } foreach($arr as $value) { print_r($arr); } Array... Read More >
202110-23 linux中入侵类问题排查思路 一、检查隐藏帐户及弱口令检查服务器系统及应用帐户是否存在 弱口令:检查说明:检查管理员帐户、数据库帐户、网站后台管理员帐户等密码设置是否较为简单,简单的密码很容易被黑客破解。解决方法:以管理员权限登录系统或应用程序后台,修改为复杂的密码。使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器:检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。解决方法:检查发现有可疑用户时,可使用命令usermod -L... Read More >
202110-22 linux中安全加固几条建议 背景本文以CentOS7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1) 设置复杂密码服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂密码 ,也可使用密码生成器自动生成复杂密码,这里给您一个链接参考:https://suijimimashengcheng.51240.com/echo "root:wgr1TDs2Mnx0XuAv" | chpasswd2) 设置密码策略修改文件/etc/logi... Read More >
202110-09 1449-The user specified as a definer ('db_user'@'%') does not exist 背景最近在做一个项目的数据库迁移,把数据库迁移倒腾讯云mysql,所以需要将原有服务器的mysql数据库做一个迁移。于是在腾讯云后台做了DTS ,导入完成之后还是遇到了一些莫名其妙的问题。登录的时候,报错:1449-The user specified as a definer ('db_user'@'%') does not exist我们项目换了新的数据库用户名字和密码,各个项目中的配置也都改成新的了,但是登录的时候,保存用户信息的地方报错... Read More >
202109-24 openresty中的高级限制请求 Nginx 有ngx_http_limit_req_module可用于限制请求处理速率,但大多数人似乎只使用其基本功能:通过远程地址限制请求率http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... serv... Read More >
202109-23 openresty中location和lua的使用详解 与其他 location 配合nginx 世界的 location 是异常强大的,毕竟 nginx 的主要应用场景是在负载均衡、API server,在不同 server、location 之间跳转更是家常便饭。利用不同 location 的功能组合,我们可以完成内部调用、流水线方式跳转、外部重定向等几大不同方式,下面将给大家介绍几个主要应用,就当抛砖引玉。内部调用例如对数据库、内部公共函数的统一接口,可以把它们放到统一的 location 中。通常情况下,为了保护这些内部接... Read More >
202108-31 前端构建工具gulpjs的详解 概念gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速度更快。如果你还没有使用过前端构建工具,或者觉得gruntjs太难用的话,那就尝试一下gulp吧。1、gulp的安装首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp:npm install -g gulp全局安装gulp后,还需要在每个要使用gulp的项目... Read More >
202108-26 serverless看这一篇就够了 1. 无服务器(Serverless)计算是什么过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless的出现,带来了跨越式变革。Serverless把主机管理、操作系统管理、资源分配、扩容,甚至是应用逻辑的全部组件都外包出去,把它们看作某种形式的商品——厂商提供服务,我们掏钱购买。过去是“构建一个框架运行在一台服务器上,对多个事件进行响应”,Serverless则变为“构建或使用一个微服务或微功能来响应一个事件”,做到当访问时,调入相关资源开始运行,... Read More >
202108-25 DNS原理什么叫域名劫持和域名欺骗/域名污染 给大家扫盲一下 DNS 的常识。既然是扫盲 DNS,也顺带说说“域名劫持”和“域名污染”这两个很容易混淆的概念。提醒一下:这两者的其中之一是 GFW 的大杀器,爱翻墙的同学有必要了解。DNS 是啥?DNS 是洋文“Domain Name System”的缩写,直译过来就是“域名系统”。 DNS 有啥用?咱们每天打交道的这个互联网,其底层的基石是“IP”。IP 是“Internet Protocol”的缩写,中文就“互联网协议”(光看名字就知道这玩意儿很重要)。咱们日... Read More >