nginx配置

做网站免不了要做nginx的配置,现在将自己所学的总结一下,由于并不做运维,只是做了从server开始的配置(挑选里面常用的命令配置说下).

1.server 标识开始虚拟主机的配置

1.1 server_name 设置虚拟主机名

主机名可以为全称,

可以包含*通配符(仅放在开始或者结尾部分),

也可以在主机名中使用正则表达式(可包含匹配组(0.7.40),后续被其它指令使用,正则表达式中的命名匹配组可以创建变量(0.8.25))(注意使用数字引用的变量无法在rewrite中使用)

1.2 listen 设置nginx监听地址

可以设置为ip协议:adress和port,也可以是unix域套接字协议:path.

在没有定义listen指令的情况下,如果以超级用户权限运行nginx,它将监听*:80,否则他将监听*:8000

如果listen指令携带default_server参数,当前虚拟主机将成为指定address:port的默认虚拟主机。 如果任何listen指令都没有携带default_server参数,那么第一个监听address:port的虚拟主机将被作为这个地址的默认虚拟主机.

注意:listen只设置端口时,nginx将匹配端口和server_name,如果listen设置了ip或者域名,将无视server_name,监听所有符合条件的listen信息,此时server_name和http_host将不同.

2.log

2.1 access_log 为访问日志设置路径,格式和缓冲区大小(nginx访问日志支持缓存)。

2.2 log_format 指定日志的格式。

2.3 open_log_file_cache  定义一个缓存,用来存储频繁使用的文件名中包含变量的日志文件描述符

2.4 log_not_fount 开启或者关闭在error_log中记录文件不存在的错误。

2.5 log_subrequest 开启或者关闭在access_log中记录子请求的访问日志。

2.6 rewrite_log  开启或者关闭将ngx_http_rewrite_module模块指令的处理日志以notice级别记录到错误日志中。(即开启后,error_log以notice以上级别记录日志才记录)

2.7 error_log 错误日志

3.location

3.1、location匹配模式

a、=精确匹配(匹配优先级最高)

b、前缀字符串匹配(最长的前缀优先匹配,匹配完成后还需在正则表达式中接着匹配,如果匹配上了使用正则表达式的匹配,否则使用自身匹配)(另外如果使用^~则不会再去匹配正则表达式)

c、~和~*(不区分大小写)正则表达式匹配(多个正则表达式按出现的先后顺序匹配)

注:在0.7.1到0.8.41的所有nginx中,如果请求匹配的前缀字符串路径并没有“=”或“^~”前缀, 路径查找过程仍然会停止,而不进行正则表达式匹配。

/aa 匹配上精确匹配 A

/aabc 匹配上正则表达式D (匹配过程:先匹配最长前缀字符串匹配B,然后匹配到正则表达式D)(如果上述配置没有B,则匹配到C就直接结束)

/aab 匹配上前缀匹配C(匹配过程:匹配到最长前缀字符串C,由于有^~,匹配结束)

4.rewrite

如果指定的正则表达式能匹配URI,此URI将被replacement参数定义的字符串改写。rewrite指令按其在配置文件中出现的顺序执行。flag可以终止后续指令的执行。如果replacement的字符串以“http://”或“https://”开头,nginx将结束执行过程,并返回给客户端一个重定向。

可选的flag参数可以是其中之一:

last
停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;
break
停止执行当前这一轮的ngx_http_rewrite_module指令集;
redirect
在replacement字符串未以“http://”或“https://”开头时,使用返回状态码为302的临时重定向;
permanent
返回状态码为301的永久重定向。
a、执行顺序
1.执行server块的rewrite指令(这里的块指的是server关键字后{}包围的区域,其它xx块类似)
2.执行location匹配
3.执行选定的location中的rewrite指令
如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件如果循环超过10次,则返回500 Internal Server Error错误

例 /aa分别依次匹配到A、B、C、D、E,最终请求uri为:/index.php?e=5&d=4&c=3&b=2&a=1

所有配置均加上last,则匹配会依次为A、C、D、E,最终请求uri为:/index.php?e=5&d=4&c=3&a=1

所有配置均加上break,则匹配依次为A; 最终请求uri为:/aab?a=1

如果不想每次重写都带上原请求参数,则需要在重写后的replacement后面加上?即可.

php实现的各种排序算法

 

 

git使用

1、git的安装

Ubuntu环境下直接用

安装即可

安装完毕后需要对git进行配置,git的配置有3个部分:

1.1、系统配置

修改的是文件/etc/gitconfig

1.2、全局配置

修改的是文件/home/[your name]/.gitconfig(只对当前系统登录用户[your name]有效,继承系统配置并覆盖相同配置)

1.3、仓库配置

修改的文件是当前仓库目录.git/.gitconfig(只对当前仓库有效,继承全局配置并覆盖相同配置)

1.4、其它配置命令

2、git使用
2.1、创建版本库

2.2、提交文件

2.3分支管理