使用Docker Compose快速搭建Wordpress
Compose 介绍Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目。
Compose 中有两个重要的概念:
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
安装在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。
例如,在 Linux 64 位系统上直接下载对应的二进制包。
12$ sudo curl -L https://github.com/docker/ ...
Go实现API接口
Go语言,十分方便开发Api接口。而且不需要web服务器就能够实现。现在想返回指定格式的Api,格式如下
123456{ "code": 400, "data": {}, "message": "非法访问!"}
code123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package webimport ( "fmt" "net/http" "time" "encoding/json")func main() { fmt.Print("ready") http.HandleFunc("/login", loginTa ...
使用Nginx实时剪裁图片
需求我们经常需要处理图片,对图片进行压缩,剪切。例如用户在个人中心上传图片,作为个人头像。此时头像一般为缩略图。
或者前段人员开发时,需要对同一个图片,在不同尺寸屏幕下,显示不同规格的图片。
实现方式常用方式是通过后台程序实现,例如PHP。剪裁不同的图片,然后存储在磁盘中,可以多次调用。
其实我们可以通过Nginx,快速实现。通过Nginx中图片处理模块,轻量、快速实现,图片压缩、剪裁等功能。
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本。在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。缺点:由于是即时计算的结果,所以网站访问量大的话,不建议使用。
安装默认HttpImageFilterModule模块是不会编译进nginx,需要在configure时候指定--with-http_image_filter_module
先查询Nginx是否安装此模块
1234nginx -V#格式化之后的命令, 方便查看 2> ...
Mtr网络节点诊断工具
一般判断网络连通性用ping 和tracert.ping的话可以来判断丢包率,tracert可以用来跟踪路由.
在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr
官网: http://www.bitwizard.nl/mtr/Github: https://github.com/traviscross/mtr
官方说明mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
As mtr starts, it investigates the network connection between the host mtr runs on and a user-specified destination host.
After it determines the address of each netwo ...
Mysql日志记录慢查询及所有Sql
启慢查询日志,可以让MySQL记录下查询超过指定时间的语句。通过定位分析性能的瓶颈,可以更好的优化数据库系统的性能。这是常用的MySQL性能优化方式。精准定位到慢查询语句,可以快速解决问题。
同时,有时候也需要监控所有Sql的执行,我们可以开启Mysql的日志,记录所有的Sql语句,方便排查问题。
记录所有Sql1show variables like "%general_log%";
设置12345set general_log=on;//提示ERROR 1229 (HY000): Variable 'general_log' is a GLOBAL variable and should be set with SET GLOBALset global general_log=on;
再次查看
开启 慢查询1234567891011121314mysql> show variables like 'slow_query%';+---------------------------+---------------- ...
MySQL自带的压力测试工具mysqlslap
mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。
参数说明获得可用的选项
1mysqlslap –help
--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。
--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。
--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。
--number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1
--number-int-cols=N, -y N 自动生成的测试表中包 ...
Nginx+Docker在一台服务器上模拟实现负载均衡
负载均衡是网站解决高并发、海量数据问题的常用手段。通过负载均衡调度服务器,将来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上。如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。
一般负载均衡常用LVS+keepalived+nginx实现。现在利用Docker可以十分方便的在一台服务器上简单模拟负载均衡。
环境准备
在服务器中搭建一个Nginx环境
docker安装2个新的Nginx环境
新建2个项目路径和文件
vi /var/www/test/data1/index.html
1this is index1
vi /var/www/test/data2/index.html
1this is index2
通过负载均衡,随机访问这2个项目
docker安装nginx1docker pull nginx
启动2个nginx
123docker run --name nginx-test -d -p 8081:80 -v /var/www/test/data1:/usr/share/nginx/html nginxdocker ...
Http状态码
HTTP定义遵循一条规则:所有状态码的第一个数字代表了响应的状态。1表示消息;2表示成功;3表示重定向;4表示请求错误;5、6表示服务器错误。如下图:
1XX:消息这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。此类状态码暂且作为了解。
100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。
101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协 ...
让进程在linux后台运行
场景如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢?
使用linux终端时,有些命令希望在后台运行,不占用终端界面。例如耗时长的任务,或者守护进程等。
&在命令后面加上& 实现后台运行,例如
1sh test.sh &
如果放在后台运行的作业会产生大量的输出,可以输出重定向到某个文件中:
1command > out.file 2>&1 &
当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。
123ps -ef | grep 8153kill -9 8153
nohup当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,可以让进程忽略 HUP 信号。
nohup与&区别使用&命令后,作业被提交到后台运行,一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
使用方法
输入命令:1 ...
开源资产管理软件 Snipe-IT
需求现在公司,办公设备的管理是基本需求。员工相应的笔记本,台式机,门禁卡都必须做好记录。一般公司都是有Execl管理。但当公司人员庞大,办公地点多样,人员经常流动时,更新Execl表会是一个十分繁琐的工作。而且很多公司有多个办公地点,多个分公司。需要集体公司同意管理,统一采购设备。
这时候需要专门的系统工具去管理资产。
Snipe介绍Snipe-it是一款开源的资产管理系统。在实际工作中,完全替代EXECL表格的资产管理。
支持多语言,方便公司全球化扩张。
官网https://snipeitapp.com/
在线Demo官方提供在线Demo,可以先测试。https://demo.snipeitapp.com/
测试账号 admin /password
安装安装步骤
安装文档https://snipe-it.readme.io有详细的英文安装文档
获取代码代码可以在官网下载https://snipeitapp.com/download/(https://snipeitapp.com/download/)
也可以在Github获取https://github.com/snipe/ ...