自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leeyongbard的博客

耐得住寂寞,方能守得住繁华,该奋斗的年龄不要选择了安逸

  • 博客(160)
  • 资源 (9)
  • 收藏
  • 关注

原创 nginx 反向代理配置(二)

上一篇文章主要是对 nginx 各个模块做了一个介绍,以及对什么是反向代理在文章开头做了一个简单介绍,这篇文章我们主要来看下如何进行 nginx 反向代理的配置 proxy 模块 nginx 通过 proxy 模块将客户端请求代理至上游服务器,此时,nginx 与上游服务器之间是通过 http 协议连接的。nginx 在实现反向代理功能时最重要的指令是 proxy...

2019-05-22 11:22:00 109

原创 nginx 反向代理配置(一)

文章参考:https://blog.csdn.net/physicsdandan/article/details/45667357 什么是代理? 代理在普通生活中的意义就是本来应该你做的事情,你让别人代你做了,那么那个帮你做的人就是你的代理。和在计算机网络中代理的概念差不多,本来是要客户端做的网络访问,现在移交给另外一台机器做,那么那个机器就被称为代理服务器...

2019-05-18 11:25:00 124

原创 nginx的access_log与error_log

参考文章:https://juejin.im/post/5aa09bb3f265da238f121b6c 本篇文章主要介绍一下 nginx 服务器两种日志查看:access_log、error_log access_log:指的是访问日志,我们通过访问日志可以获取用户的 IP、请求处理的时间、浏览器信息等 error_log:错误日志记录了访问出...

2019-05-17 11:36:00 140

原创 MySQL 慢查询日志

慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过long_query_time 值的 SQL,会被记录到慢查询日志。long_query_time 的默认值是 10s,意思是查询响应时间超过 10s 的 SQL语句。默认情况下,MySQL 是不开启慢查询日志的,需要我们手...

2019-05-16 21:55:00 73

原创 php-fpm 慢日志查询

虽然可以通过 nginx 的 accesslog 日志查询到用户访问接口或网页消耗的时间,但是不能清晰的追踪到哪个文件或函数慢,可以通过 php-fpm 慢日志查询检测 php 脚本运行状态,哪些 php 进程比较慢,有哪些错误日志 1 先查找到配置文件存放的位置find / -name php-fpm.conf 打开配置文件看慢日志查询是否开启,...

2019-04-30 21:27:00 30

原创 理解 OAuth2.0

文章转载于阮一峰老师的博客:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html参考文章:https://learnku.com/articles/20082一、应用场景 为了理解 OAuth 的适用场景,阮老师在这里举了一个例子说明,如下: 有一个 "云冲印" 的网站,可以将用户存储在 Google 的照片...

2019-03-16 13:22:00 24

原创 如何在 Apache 里修改 PHP 配置

当使用 PHP 作为 Apache 模块时,也可以使用 Apache 配置文件(例如:httpd.conf) 和 .htaccess 文件中的指令来修改 PHP 的配置设定,不过需要有 "AllowOverride Options" 或 "AllowOverride All" 权限才可以 哪些指令可以让用户在 Apache 配置文件内部修改 PHP 的配置? 属于...

2019-03-15 18:16:00 36

原创 Go-常见的面试题(一)

文章转载地址:https://juejin.im/entry/5971bed66fb9a06bb21adf151、写出下面代码的输出package mainimport "fmt"func main() { defer_all() panic("触发异常")}func defer_all() { defer func() { fmt.Println("打印前")...

2019-03-02 20:52:00 26

原创 Go 嵌入类型

文章转载地址:https://www.flysnow.org/2017/04/06/go-in-action-go-embedded-type.html 嵌入类型或嵌套类型,这是一种可以把已有类型的声明嵌入到新的类型里的一种方式,这种功能对代码复用非常重要 在其他语言中,有继承的概念,但是在 Go 语言中没有继承的概念,Go 提倡的代码复用的方式是组合,所以,这...

2019-03-02 19:55:00 22

原创 PHP 获取当前访问的完整URL

代码如下:<?php// php 获取当前访问的完整urlfunction GetCurUrl() { $url = 'http://'; if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $url = 'https://'; } // 判断端口 if($_SERVER['SE...

2019-02-28 19:38:00 39

原创 Go-延时函数defer

关于延时调用函数(Deferred Function Calls) 延时调用函数基本语法如下:defer func_name(param-list) {}  当一个函数前有关键字 defer 时,那么这个函数执行会被推迟到包含这个 defer 语句的函数即将返回前才执行,如下示例:package mainimport "fmt"func main() { de...

2019-02-22 21:31:00 18

原创 Go-单元测试

文章转载地址:https://www.flysnow.org/2017/05/16/go-in-action-go-unit-test.html什么是单元测试? 单元测试一般用来测试我们的代码逻辑是否有问题,有没有按照我们的期望运行,以保证代码质量 大多数的单元测试都是针对某一个函数方法进行测试,以尽可能的保证没有问题或问题可以被我们预知 现在,我们在 p...

2019-02-21 20:42:00 18

原创 Go 参数传递是传值还是传引用

什么是传值(值传递)? 传值的意思是:函数传递的总是原来这个东西的一个副本、一个副拷贝。比如我们传递一个 int 类型的参数,传递的其实这个参数的一个副本;传递一个指针类型的参数,其实传递的是这个指针的一份拷贝,而不是这个指针指向的值 对于 int 这类基础类型的我们可以很容易理解,它们就是一个拷贝,但是指针呢?我们可以通过它修改原来的值,怎么会是一个拷贝呢?看如下示例:...

2019-02-20 15:57:00 19

原创 Go-For Range 性能研究

文章转载地址:https://www.flysnow.org/2018/10/20/golang-for-range-slice-map.html 如果我们要遍历某个数组,Map 集合、Slice 切片等,Go 语言(Golang) 为我们提供了比较好的 For Range 方式。range 是一个关键字, 表示范围,和 for 配合使用可以迭代 数组、Map、Slic...

2019-02-18 17:54:00 16

原创 Go 基准测试

文章转载地址:https://www.flysnow.org/2017/05/21/go-in-action-go-benchmark-test.html什么是基准测试? 基准测试,是一种测试代码性能的方式,比如你有多种不同的方案,都可以解决问题,那么到底哪种方案性能更好呢?这时候我们就可以使用基准测试 基准测试主要是通过测试 CPU 和 内存的效率,来评估被测试...

2019-02-16 18:11:00 20

原创 Go 使用 JSON

Encode将一个对象编码成 JSON 数据,接受一个 interface{} 对象,返回 []byte 和 errfunc Marshal(v interface{}) {[]byte,err}Marshal 函数将会递归遍历整个对象,依次按照成员类型对这个对象进行编码,类型转换如下:1 bool 类型转换成 JSON 的 boolean2 整数、浮点数等数值类型转换成 JSO...

2019-02-15 21:38:00 19

原创 Go 反射

文章转载地址:https://www.flysnow.org/2017/06/13/go-in-action-go-reflect.html1. TypeOf 和 ValueOf 在 Go 的反射定义中,任何接口都由两部分组成,一个是接口的具体类型,一个是具体类型对应的值。比如:var i int = 3,因为 interface{} 可以表示任何类型,所以变量 i 可...

2019-02-15 11:03:00 20

原创 Go 接口(interface)

文章转载地址:https://www.flysnow.org/2017/04/03/go-in-action-go-interface.html1.什么是 interface? 简单的说,interface 是一组 method 签名的组合,通过 interface 定义对象的一组行为 上一篇文章中我们实现了 Student 和 Employee 都能 SayHi,现在我们进...

2019-02-14 11:04:00 22

原创 Go 函数方法

在 Go 语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如 PHP 函数就是方法,方法就是函数,但在 Go 语言中,函数是不属于任何结构体、类型的方法,也就是说函数是没有接收者的;而方法是有接收者的,我们所说的方法要么属于一个结构体的,要么属于一个新定义的类型的函数 函数和方法,虽然概念不同,但是定义非常相似。函数的定义声明没有接收者,如下示例:...

2019-02-13 15:02:00 21

原创 PHP 递归函数

递归函数即自调用函数,在函数体内部直接或间接的自己调用自己,即函数的嵌套调用就是函数本身。通常在此类型的函数体中会附加一个条件判断,以判断是否需要执行递归调用,并且在特定的条件下终止函数的递归调用动作,把目前流程的主控权交回到上一层函数执行。 总结: 1.递归是一种函数调用自身的机制 2.递归必须要有边界条件,也就是递归出口(退出递归)...

2019-01-23 16:37:00 19

原创 Linux 查看进程之PS命令

要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态。Linux 系统中我们可以使用 ps 命令查看进程。 ps 命令介绍 ps(process status) 命令是 Linux 下最常用的进程查看工具,使用该命令可以确定哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。 ...

2019-01-22 14:16:00 14

原创 PHP isset 和 array_key_exists 对比

经常使用 isset 判断变量或数组中的键是否存在,但是数组中可以使用 array_key_exists 这个函数,那么这两个哪一个更优呢? 官方文档这样定义两者: isset:语言构造器,用于检测变量是否已设置并且非 NULL,文档地址:http://php.net/manual/zh/function.isset.php array_key_exists:函数,用于...

2019-01-17 21:03:00 16

原创 Linux md5sum 的用法

MD5 算法常常被用来验证网络文件传输的完整性,防止文件被篡改。MD5 全称是报文摘要算法,此算法对任意长度的信息逐位计算,产生一个二进制长度为 128 位(十六进制长度 32 位)的报文摘要,不同的文件产生相同的报文摘要的可能性非常小。 在 Linux 上,md5sum 是用来计算和校验文件报文摘要的工具程序。一般来说,安装了 Linux 后,就会有 md5sum 这个工具...

2019-01-17 12:18:00 30

原创 Linux Sphinx 安装与使用

一、什么是 Sphinx? Sphinx 是一个基于SQL的全文检索引擎,可以结合 MySQL,PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx 特别为一些脚本语言设计搜索 API 接口,如 PHP,Python,Perl,Ruby 等,同时为 MySQL 也设计了一个存储引擎插件。 ...

2019-01-05 19:33:00 27

原创 Linux 命令行下导入导出 .sql 文件

一、导出数据库用的是 mysqldump 命令 1.导出数据和表结构/usr/bin/mysqldump -u 用户名 -p 数据库名 > 数据库名.sql  敲回车键后会提示输入密码 注意 mysql 的安装路径,就是这个命令的路径 2.导出表结构/usr/bin/mysqldump -u root -p -d 数据库名 > ...

2019-01-04 20:05:00 12

原创 那些年我们一起用过的 PHP 函数(一)

用这个帖子记录一下 PHP 中比较常用的函数以及使用过程中需要注意的点,此贴持续更新1.strpos() 函数 首先,我们知道 strpos() 函数是用于查找一个字符串在另一个字符串第一次出现的位置,示例如下:<?php 2 3 echo strpos("I love php, I love php too!", "php");----------------...

2019-01-03 21:40:00 12

原创 PHP 时间函数time、date和microtime的区别

一、time、date 和 microtime函数 time----返回当前的 Unix 时间戳 date----格式化一个本地时间/日期 microtime----返回当前的 Unix 时间戳和微秒数二、三者的区别 1.time() 函数 time() 函数返回的是从 Unix 纪元(格林威治1970年1月1日00:00...

2019-01-03 16:33:00 17

原创 HTTPS 如何保证数据传输的安全性

为什么需要 HTTPS? 我们知道 HTTP 是一个纯文本传输协议,对传输过程中的数据包不进行加密,是明文传输,那这样的话对于介于在发送端和接收端之间的任何一个节点都能知道传输的内容,这些节点可能是路由器、代理等。 一个比较常见的例子:用户完善个人信息。用户输入需要填写的资料,这些资料中可能包含一些个人居住地址、手机号码等一些比较隐私的数据,如果采用的是 HTTP...

2018-12-13 22:17:00 16

原创 Go 结构体(Struct)

引用曾经看到的一篇文章里面对 Golang 中结构体的描述,如果说 Golang 的基础类型是原子,那么结构体就是分子。我们都知道分子是由原子组成的,换言之就是结构体里面可以包含基础类型、切片、字典、数组以及结构体自身。结构体类型的定义结构体定义的一般方式type identifier struct { field1 type1 field2 type2 ...

2018-12-08 23:15:00 19

原创 Go 字典(Map)

比较熟悉 Python 的对于字典肯定不会陌生,在 Go 中 map 就是 Python 中字典的概念,它的基本格式是map[keyType]valueType 。map 的读取和设置和 slice 比较相似,只不过 map 中是通过 key 操作,而 slice是通过 index 操作,index 只能是 int 类型,map 的 key 可以是 int 、string等类型。字典...

2018-12-07 22:15:00 21

原创 Go 灵活多变的切片Slice

我们知道数组定义好之后其长度就无法再修改,但是,在实际开发过程中,有时候我们并不知道需要多大的数组,我们期望数组的长度是可变的,在 Go 中有一种数据结构切片(Slice) 解决了这个问题,它是可变长的,可以随时向Slice 里面添加数据。1 什么是切片(Slice) 在 Go 源码中是这样定义切片的,源码地址:https://github.com/golang/go/blob/m...

2018-12-01 19:55:00 12

原创 Go 定长的数组

1.Go 语言数组的简介 几乎所有的计算机语言都有数组,应用非常的广泛。同样,在 Go 语言中也有数组并且在数组的基础上还衍生出了切片(slice)。数组是一系列同一类型数据的集合,数组中包含的每个数据被称为数组元素,一个数组包含的元素个数被称为数组的长度,这是数组的基本定义。 在 Go 语言中数组是一个值类型(Value Type)。所有的值类型变量在赋值和作为参数传递时都将产...

2018-11-30 16:36:00 12

原创 Shell 脚本批量创建数据库表

使用 Shell 脚本批量创建数据表系统:Centos6.5 64位MySQL版本:5.1.73比如下面这个脚本:#!/bin/bash#批量新建数据表for y in {0..199};domysql -uroot -proot -e "use mysql; create table user$y(id int(11) unsigned NOT NULL AUTO_INCR...

2018-11-26 21:49:00 19

原创 Linux crontab命令

crond 简介crond 是 Linux 中用来周期性的执行某种任务或等待处理某些事情的一个守护进程(后台程序运行不受终端控制的进程),和 windows 下的计划任务相似当安装完系统操作系统后,默认会安装此工具,并且会自动启动 crond 进程,crond 进程每分钟都会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux 下的调度任务分为两种:系统任务调度和...

2018-11-24 14:17:00 10

原创 URL重定向及跳转漏洞

URL跳转漏洞 URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。使用场景 现在 Web 登录很多都接入了QQ、微信、新浪等第三方登录,以 QQ 第三方授权登录为例说明,在我们调用 QQ 授权服务器进行授权时,会在参数中传入redirect_url(重定向)地址,告知 QQ 授权服务器,授权成功之后...

2018-11-14 15:44:00 20

原创 PHP 常见的数据加密技术

单项散列加密技术(不可逆的加密)把任意长的输入字符串变化为固定长的输出串的一种函数MD5string md5 ( string $str [, bool $raw_output = false ] ); // MD5加密,输入任意长度字符串返回一个唯一的32字符,第一个参数是需要加密的字符串,第二个为 raw_output 的布尔值,默认情况下false,当设置为true时,返回的是原始...

2018-11-05 21:12:00 75

原创 Linux scp命令

scp 是 secure copy 的拷贝,用于在 Linux 下进行远程拷贝文件的命令,和它类似的命令有cp,不过 cp 只是在本机进行拷贝不能跨服务器,而且 scp 传输是加密的。命令格式:scp [参数] [原路径] [目标路径]命令参数:-1 强制scp命令使用协议ssh1-2 强制scp命令使用协议ssh2-4 强制scp命令只使用IPv4寻址-6 强制scp命令...

2018-11-05 18:24:00 8

原创 PHP变量的值类型和引用类型

PHP 变量在内存中保存的并不直接是值的内容而是值的地址。比如:$a = 1;从表面上看起来似乎是 $a 直接存储了 1 这个值。但是实际情况是,PHP 解释器创建了变量 $a ,将值 1 存入内存中的某个地方,再将值的地址存到变量中。需要取值时,先找到变量中 $a 的地址,再根据地址找到变量的值。比如:echo $a;当我们执行上面这个语句时,会输出 1 ,但是 PHP ...

2018-10-20 20:16:00 11

原创 PHP 冒泡排序(Bubble Sort)

冒泡排序指的是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。因为在排序的过程中总是小数放前面,大数放后面,和气泡上升有点类似,所以又称作冒泡排序。下面通过一个实例看一下如何实现冒泡排序:/** 冒泡排序算法实例 */ // 通过一个数组做演示$demo_array = array(33,25,43,75,1,2,6,3,11,5,20,32,65);for(...

2018-10-15 14:18:00 13

原创 Git、GitHub、GitLab三者之间的联系以及区别

在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转)1.什么是 Git?Git 是一个版本控制系统。版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统。以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目:project_v1、project_v1.1、project_v2等等,通过这种方式记录...

2018-10-12 14:48:00 14

NppFTP 32位

notepad++常用的NppFTP插件,可以方便的连接云虚拟主机

2018-03-12

NppFTP 64位

notepad++常用的NppFTP插件,可以使用这个直接连接云主机

2018-03-12

PotPlayer64

一款方便快捷的播放器,很轻快

2017-05-24

一键轻松PDF转Word

PDF转Word

2017-05-24

超文本替换

超文本替换,一键替换所有内容,方便快捷,开发过程不可获取的好助手

2017-05-24

单页扒站小工具-扒出来的页面非常完美

单页扒站小工具-扒出来的页面非常完美

2017-05-24

jquery-lightbox-0.5

jquery-lightbox-0.5

2017-05-10

截图取色工具

截图取色工具

2017-05-10

许愿墙及后台管理模版

基于thinkphp3.1.3开发实例,内容包含后台搭建,可以更好好学习thinkphp

2015-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除