前言
1、基本命令
1.1、启动
Linux ./nginx -c conf/nginx.conf
windows start nginx
1.2、停止
./nginx -s stop
1.3、有序退出
./nginx -s quit
1.4、配置修改后,重新载入
./nginx -s reload
1.5、重启
./nginx -s reopen
1.6、检测配置文件
./nginx -t
1.7、平滑重启
kill -HUP nginx进程号
kill -HUP '/var/run/nginx.pid"
当nginx接收到HUP信号时,它会尝试先解析配置文件(如果指定文件,就使用指定的,否则使用默认的),如果成功,就应用新的配置文件(例如:重新打开日志文件或监听的套接字),之后,nginx运行新的工作进程并从容关闭旧的工作进程,通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务,所有客户端的服务完成后,旧的工作进程就关闭,如果新的配置文件应用失败,nginx继续使用之前的配置进行工作。
2、属性解释
2.1、listen 监听的端口;server_name 建议的域名或者ip
2.2、autoindex on;
- 解释 :开启浏览功能,开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
server {
listen 80;
server_name test.nginx.com;
root D:/nginx/;
# 开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on;
}
- 测试
http://test.nginx.com
2.3、index
- 解释 :如果url没有匹配,则优先index文件,没有这个属性值也是默认会查找index.html文件
server {
listen 80;
server_name test.nginx.com;
root D:/nginx/;
index index.html index.htm;
autoindex on;
}
- 测试
我在root目录下放入一个index.html文件,并写入文件内容index
http://test.nginx.com
2.4、location匹配规则
2.4.1、匹配规则
模式 | 含义 |
---|---|
location = /uri | = 表示精确匹配,只有完全匹配上才能生效 |
location ^~ /uri | ^~ 开头对URL路径进行前缀匹配,并且在正则之前。前缀匹配,如果有包含关系时,按最大匹配原则进行匹配。比如在前缀匹配:location /dir01 与location /dir01/dir02 ,如有请求 http://localhost/dir01/dir02/file 将最终匹配到 location /dir01/dir02 |
location ~ pattern | 正则匹配:区分大小写的 |
location ~* pattern | 正则匹配:不区分大小写的 |
location /uri | 不带任何修饰符,也表示前缀匹配,在正则匹配之后 |
location / |
2.4.2、匹配顺序
- 首先精确匹配
=
- 其次前缀匹配
^~
- 其次是按文件中顺序的正则匹配
- 然后匹配不带任何修饰的前缀匹配。
- 最后是交给
/
通用匹配 - 当有匹配成功时候,停止匹配,按当前匹配规则处理请求
2.4.3、测试
location = / {
echo "规则A";
}
location = /login {
echo "规则B";
}
location ^~ /static/ {
echo "规则C";
}
location ^~ /static/files {
echo "规则X";
}
location ~ \.(gif|jpg|png|js|css)$ {
echo "规则D";
}
location ~* \.png$ {
echo "规则E";
}
location /img {
echo "规则Y";
}
location / {
echo "规则F";
url | 匹配规则 | |
---|---|---|
http://localhost/ | A | |
http://localhost/login | B | |
http://localhost/register | F | |
http://localhost/static/a.html | C | |
http://localhost/static/files/a.exe | X | 虽然 规则C 也能匹配到,但因为最大匹配原则,最终选中了 规则X |
http://localhost/a.gif | D | |
http://localhost/static/c.png | C | 规则C顺序优先 ,规则E不起作用 |
http://localhost/a.PNG | E | 规则 E 不区分大小写。 |
http://localhost/img/a.gif | D | 虽然 规则Y 也可以匹配上,但是因为正则匹配优先,而忽略了 规则Y。 |
http://localhost/img/a.tiff | Y |
2.5、 日志记录
2.5.1、默认日志
虽然下面的log_format的注释没有打开,但是也是有日志查看的在logs文件夹下,下面的log_format开启是自定义日志支持