一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.

二、Location语法语法:location [=|~|~*|^~] /uri/ { … }

注:

1、~ 为区分大小写匹配

2、~* 为不区分大小写匹配

3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

示例一:

location / { }

匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。

示例二:

location =/ {}

仅仅匹配/

示例三:

location ~* .(gif|jpg|jpeg)$ {

rewrite .(gif|jpg)$ /logo.png;

注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件


阅读全文

Linux下DIG命令的基本用法

dig命令是一个用于询问 DNS 域名服务器的灵活的工具。

它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。

多数 DNS 管理 员利用 dig 作为 DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。

在 unix 和 linux 下,建议大家使用 dig 命令来代替 nslookup。 dig 命令的功能比 nslookup 强大很多,不像 nslookkup 还得 set 来 set 去的,怪麻烦的。

下面是 dig 的一些比较常用的命令:

  # dig 最基本的用法

  dig @server sina.com.cn.


阅读全文

目前有一个需求,其它20台机器上每隔5分钟向另外一台服务器提交一些文件的MD5信息,这台服务器每隔几分钟跑一个脚本,把这些信息进行对比,如果有不一致的信息需要报警。

现在的问题就是,系统自带的crontab定时只能每几分钟跑一次,这样每次脚本跑的时候都是在某分的第一秒。

但是,如果在服务器提交信息的时候去进行比对信息,就可能发生异常了,所以需要把服务器上检查的脚本推迟一些运行,不要也是在1秒时候跑。

crontab不支持,但是脚本支持延迟啊,所以,解决办法很简单。在检查脚本里开头 sleep 10s 即可啦。这样这个脚本在1秒时开始执行,但是sleep一会后才继续后边检查,所以,不会发生冲突了~~

sleep用法Tips

sleep 1 睡眠1秒<br /> sleep 1s 睡眠1秒<br /> sleep 1m 睡眠1分<br /> sleep 1h 睡眠1小时<br /> echo `expr $RANDOM % 60` 睡眠随机0-60秒


阅读全文

svn在Linux下的使用(svn命令)

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://192.168.1.1/pro/domain

简写:svn co

2、往版本库中添加新的文件

svn add file

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库

svn commit -m “LogMessage“ [-N] [–no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“ test.php

简写:svn ci


阅读全文

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。

top - 15:59:30 up 55 days,  5:05,  4 users,  load average: 0.19, 0.33, 0.30
    Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie
    Cpu(s):  2.2%us,  0.4%sy,  0.0%ni, 97.2%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
    Mem:  12292800k total,  5476308k used,  6816492k free,  1117884k buffers
    Swap:  8385920k total,     5136k used,  8380784k free,  3281700k cache

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
    10928 root      15   0  156m 9984 5328 S  6.0  0.1 971:34.63 php                                                                    
    15234 root      18   0  157m  13m 5272 S  1.3  0.1   0:00.04 php                                                                    
     7664 www       15   0  420m  26m  15m S  0.7  0.2   0:00.55 httpd                                                                  
        1 root      15   0 10348   80   48 S  0.0  0.0   1:07.21 init                                                                   
        2 root      RT  -5     0    0    0 S  0.0  0.0   0:04.55 migration/0                                                            
        3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                            
        4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                             
        5 root      RT  -5     0    0    0 S  0.0  0.0   0:02.20 migration/1

统计信息区

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

15:59:30

当前时间

up 1:22

系统运行时间,格式为时:分

1 user

当前登录用户数

load average: 0.06, 0.60, 0.48

系统负载,即任务队列的平均长度。

三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total

进程总数

1 running

正在运行的进程数

28 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

Cpu(s): 0.3% us

用户空间占用CPU百分比

1.0% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

0.0% si


阅读全文

用awk进行文本处理,少不了就是它的数组处理。那么awk数组有那些特点,一般常见运算又会怎么样呢。我们先看下下面的一些介绍,结合例子我们会讲解下它的不同之处。在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。

一、定义方法

1:可以用数值作数组索引(下标)

Tarr[1]=“cheng mo”
Tarr[2]=“800927”

2:可以用字符串作数组索引(下标)

Tarr[“first”]=“cheng ”
Tarr[“last”]=”mo”
Tarr[“birth”]=”800927”
直接使用print Tarr[1]即可得到对应的值。
二、数组相关函数
1.获取数组长度 length函数; print length(Tarr);
2.输出数组内容(无序,有序输出):
无序输出:for(k in Tarr){print k,Tarr[k]}
有序输出:for(k=1;k<=length(Tarr);k++){print k,Tarr[k];}//注意,数组下标从1开始。
3.判断键值存在以及删除键值:
键值是否存在:if( "11211" in Tarr){print "ok";}
删除键值:delete Tarr['key'];


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Develop Eneigneer

Beijing China