nginx2-路由
2019-11-04 本文已影响0人
指尖架构141319
1.nginx管理虚拟主机
- 基于域名虚拟主机配置
server {
#监听端口 80
listen 80;
#监听域名 abc.com;
server_name abc.com;
location / {
# 相对路径,相对nginx根目录。也可写成绝对路径
root abc;
# 默认跳转到index.html页面
index index.html;
}
}
- 基于端口虚拟主机配置
server {
#监听端口 1022
listen 1022;
#监听域名 abc.com;
server_name abc.com;
location / {
# 相对路径,相对nginx根目录。也可写成绝对路径
root abc;
# 默认跳转到index.html页面
index index.html;
}
}
- 基于ip虚拟主机配置
server {
#监听端口 80
listen 80;
server_name 192.168.120.129;
location / {
# 相对路径,相对nginx根目录。也可写成绝对路径
root abc;
# 默认跳转到index.html页面
index index.html;
}
}
2.Location语法规则
第三方模块 ngx_echo 的功能,请重新配置添加到 nginx 插件中
nginx版本严格对应echo版本,否则不生效
2.1 下载第三方模块
wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz tar -zxvf v0.61.tar.gz
#进入 nginx 源码目录,准备重新配置 nginx
cd nginx-1.15.8
#--add-module 指向模块目录即会安装插件到 nginx 中
./configure --add-module=/usr/local/src/echo-nginx-module-0.61
2.2 用法
语法规则: location [=||*|^~] /uri/ {… }
首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
- = 开头表示精确匹配
- ^~开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)
- ~ 开头表示区分大小写的正则匹配
- ~* 开头表示不区分大小写的正则匹配
- !和!*分别为区分大小写不匹配及不区分大小写不匹配的正则