Nginx:proxy_pass、root、rewrite、alias 的使用详解
文章目录
- 1. 前言
- 2. proxy_pass
- 3. root
- 4. alias
- 5. rewrite
1. 前言
nginx反向代理配置,常用的有好几种方式。比如:proxy_pass、root、alias、rewrite。通过这篇文章,你将了解他们的用法。
2. proxy_pass
proxy_pass 作用是将匹配到的原始地址,反向代理到另外的HTTP地址。因此,proxy_pass 通常配置为目标URL地址。
配置方式有以下两种情况:
proxy_pass 后面只有IP+端口,其他什么都没有,也不能以“/”结尾。此时代理的路径,是将请求路径IP+端口后面的部分,追加到 proxy_pass 后面
如下配置,当我们请求 http://192.168.25.131:9003/first/a.html,实际nginx代理地址为http://192.168.25.131:8080/first/a.html
server {listen 9003;server_name 192.168.25.131;location /first {proxy_pass http://localhost:8080;}
}
proxy_pass后面除了IP+端口,还有其他内容。此时的匹配逻辑,是将 location 未匹配到的内容,追加到 proxy_pass 后面
如下配置,当我们请求 http://192.168.25.131:9003/first2/a.html,实际nginx代理地址为http://192.168.25.131:8080/first/a.html
server {listen 9003;server_name 192.168.25.131;location /first2 {proxy_pass http://localhost:8080/first;}
}
3. root
- root 的作用是将 location 的内容拼接到 root 后面
- root 配置的是本地文件夹路径,而不是http路径
如下配置,浏览器打开 http://192.168.25.131:9003/html2/index.html
实际请求的是 /usr/local/nginx/html2/index.html
server {listen 9003;server_name 192.168.25.131;location /html2 {root /usr/local/nginx/;}
}
4. alias
- alias 作用是将请求地址剔除 location 配置的部分,然后拼接到 root 后面
如下配置,当请求地址是 http://192.168.25.131:9003/modules/order/index.html
实际访问路径是 /usr/local/nginx/html2/views/order/index.html
server {listen 9003;server_name 192.168.25.131;location /modules/ {alias /usr/local/nginx/html2/views/;}
}
5. rewrite
- rewrite 作用是地址重定向,语法:rewrite regex replacement[flag];
- 根据 regex(正则表达式)匹配请求地址,然后跳转到 replacement,结尾是flag标记
如下例子,请求地址是 http://192.168.25.131:9003/baidu/开头的,都会跳转到百度
location /baidu/ {rewrite ^/(.*) http://www.baidu.com/ permanent;}
常用正则表达式:
字符 | 描述 |
---|---|
\ | 将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用 |
^ | 匹配输入字符串的起始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的字符零次或者多次 |
+ | 匹配前面字符串一次或者多次 |
? | 匹配前面字符串的零次或者一次 |
. | 匹配除“\n”之外的所有单个字符 |
(pattern) | 匹配括号内的pattern |
rewrite 最后一项flag参数:
标记符号 | 描述 |
---|---|
last | 本条规则匹配完成后继续向下匹配新的location URI规则 |
break | 本条规则匹配完成后终止,不在匹配任何规则 |
redirect | 返回302临时重定向 |
permanent | 返回301永久重定向 |
例子2:将 http://192.168.25.131:9003/api/ 开头的地址,重定向到http://192.168.25.131:9003/****。也就是说,将中间的 /api 去掉
location /api/ {rewrite /api/(.*) /$1 break;proxy_pass http://192.168.25.131:9003;}
( ) --用于匹配括号之间的内容,通过$1、$2调用
Nginx:proxy_pass、root、rewrite、alias 的使用详解相关推荐
- nginx rewrite 配置说明与参数详解
[导读] rewrite是一个静态规则了,下面我来给nginx用户详细介绍rewrite配置与参数详解,有需要了解的同学可进入参考参考.本日志内容来自互联网和平日使用经验,整理一下方便日后参考.正则表 ...
- nginx中root和alias指令的解释
1 基本信息 功能均为将url映射为文件路径,返回静态文件内容 格式 alias path root path 2 区别 root会映射完整url,会将location匹配的部分,追加到path后面, ...
- Nginx 从入门到实践,万字详解!
最近越来越频繁地遇到需要配置反向代理的场景,在自己搭建博客的时候,也不可避免要用到 Nginx,所以这段时间集中学习了一下 Nginx,同时做了一些笔记,希望也可以帮助到大家- ???? 这篇文章会在 ...
- linux机顶盒 安卓机顶盒 优劣势分析,智能电视、网络机顶盒root好不好?优缺点详解...
原标题:智能电视.网络机顶盒root好不好?优缺点详解 电视盒子/智能电视root好不好?智能电视盒子怎么root?详细告诉你root的优缺点,看完后再决定是否root你的电视盒子和安卓智能电视吧. ...
- 详解nginx的root与alias
文章目录 1. 结论 2. 详解root 2.1 基本用法 2.2 location的最左匹配原则 2.3 index 2.4 nginx location解析url工作流程 2.5 末尾'/' 3. ...
- nginx中root和alias;proxy_pass
location中的root和alias的区别 root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. root的处理结果 ...
- nginx php 此网页包含重定向循环,详解常用的nginx rewrite重写规则
本文提供一些常用的rewrite重写规则,用来美化网页的链接.规则里面的$1$2你不知道是怎么来的话,只要记住,第一个()里面的是$1,第二个()里面的是$2. 请求的URL是给人看的,重写后的URL ...
- nginx的root和alias指令的区别
nginx配置下有两个指定目录的执行,root和alias location /img/ { alias /var/www/image/; } #若按照上述配置的话,则访问/img/目录里面的文件时, ...
- Nginx中root与alias区别
Nginx中配置文件路径有两种方式,一种是root一种是alias,那么两种有什么区别呢,下面请跟我一起正确的使用root和alias吧 首先还是先说下他俩的区别,主要是对URI部分处理的不同,如下: ...
最新文章
- Linux08--Shell程序设计03 shell script
- 分布学在flash当中的应用体现
- QT乱码总结5.万能解决方案
- .NET上海社区线下Meetup - 5.22 Blazor Day
- 什么是document对象?如何获取文档对象上的元素?_dom对象
- vb 通过php连接mysql数据库连接_vb如何mysql数据库连接
- vue 项目路由配置
- 如何利用即时通讯工具进行营销
- win11官网的预览版系统如何下载安装
- JAVA九宫格拼图游戏怎么计时_九宫格拼图怎么拼 如何玩转九宫格拼图游戏
- 1934 贝茜放慢脚步(二路归并)
- word2vec损失函数
- OA系统面试时如何介绍的思路
- 谷粒商城-商城业务(商品上架)
- 必不可少的10类MAC装机必备软件,个个万里挑一
- 将excel表格数据转换为xml文本数据
- 中医移动医疗_搜狗切入移动医疗领域 推中医识方APP
- 【Java高级程序设计学习笔记】深入理解jdk动态代理
- 教你破解隔壁妹子wifi密码,成功率高达90%
- matlab中任意两边之和大于第三边,MATLAB教程第三章.ppt