nginx基础知识
Nginx是一款开源的高性能HTTP和反向代理服务器,也用于邮件代理服务器。其特点包括处理高并发连接的能力、低内存占用、以及异步事件驱动的架构。
Nginx的配置文件(通常位于/etc/nginx/nginx.conf)是其核心,它允许管理员定义服务器如何响应不同类型的网络请求。配置文件由多个部分组成,包括events、http、server和location等指令块。这些指令块协同工作,控制Nginx的行为和响应机制。
- location
location指令是Nginx配置中的核心部分,用于定义服务器如何处理不同的URI请求。它位于server指令块中,用于根据请求的URI来确定请求应该如何被处理。
支持精确、标准和正则匹配。
location [修饰符] /uri/ {# 配置指令
}
- root和alias
root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,比如:
location /i/ { root /data/w3;
}
# 真实的路径是root指定的值加上location指定的值 。
# request http://www.example.com/i/test.gif --> /data/w3/i/test.giflocation /i/ { alias /data/w3/;
}
# 真实路径都是 alias 指定的路径
# request http://www.example.com/i/test.gif --> /data/w3/test.gif
区别:
1、 alias 只能作用在location中,而root可以存在server、http和location中。
2、 alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无。
- proxy_pass
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
# http://www.example.com/proxy/test.html
# 第一种:
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
# 代理到URL:http://127.0.0.1/test.html# 第二种(相对于第一种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1;
}
代理到URL:http://127.0.0.1/proxy/test.html# 第三种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}
# 代理到URL:http://127.0.0.1/aaa/test.html# 第四种(相对于第三种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1/aaa;
}
# 代理到URL:http://127.0.0.1/aaatest.html