nginx proxy_pass指令’/’使用注意事项
1. proxy_pass配置说明
不带/
location /test/
{
proxy_pass http://t6:8300;
}
带/
location /test/
{
proxy_pass http://t6:8300/;
}
上面两种配置,区别只在于proxy_pass转发的路径后是否带 “/”
针对情况1,如果访问url = http://server/test/test.jsp,则被nginx代理后,请求路径会便问http://proxy_pass/test/test.jsp,将test/ 作为根路径,请求test/路径下的资源
针对情况2,如果访问url = http://server/test/test.jsp,则被nginx代理后,请求路径会变为 http://proxy_pass/test.jsp,直接访问server的根资源
2. 典型实例
同一个域名下,根据根路径的不同,访问不同应用及资源
例如:A应用 http://server/a ; B应用 http://server/b
A 应用和 B应用共同使用访问域名 http://server;
配置nginx代理转发时,如果采用情况2的配置方式,则会导致访问http://server/a/test.jsp时,代理到http://proxy_pass/test.jsp,导致无法访问到正确的资源,页面中如果有对根资源的访问,也都会以http://server 做为根路径访问资源,导致资源失效
针对此类情况,需要采用情况1,分别针对不用应用,设置不同的根资源路径,并保证代理后的根路径也依然有效
相关推荐
-
Nginx服务器的反向代理proxy_pass配置方法讲解
就普通的反向代理来讲 Nginx的配置还是比较简单的,如: location ~ /* { proxy_pass http://127.0.0.1:8008; } 或者可以 location / { proxy_pass http://127.0.0.1:8008; } Apache2的反向代理的配置是: ProxyPass /ysz/ http://localhost:8080/ 然而,如果要配置一个相对复杂的反向代理 Nginx相对Apache2就要麻烦一些了 比如,将url中以/wap/开
-
nginx proxy_pass反向代理配置中url后加不加/的区别介绍
前言 nginx作为web服务器一个重要的功能就是反向代理.nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理. 而在日常的web网站部署中,经常会用到nginx的proxy_pass反向代理,有一个配置需要弄清楚:配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走(这样配置可以参考这篇文章). 下面举个小实
-
nginx proxy_pass指令’/’使用注意事项
1. proxy_pass配置说明 不带/ 复制代码 代码如下: location /test/ { proxy_pass http://t6:8300; } 带/ 复制代码 代码如下: location /test/ { proxy_pass http://t6:8300/; } 上面两种配置,区别只在于proxy_pass转发的路径后是否带 "/" 针对情况1,如果访问url = http://server/test/test.jsp,则被
-
详解Nginx proxy_pass的一个/斜杠引发的血案
背景 一个nginx的server模块下需要proxy到两个server,所以就通过location的不同路径来区分转发到不同的服务器上. 一开始是这么写的 location / { proxy_pass http://server1/; } location /index { proxy_pass http://server2/; } 但是忘记了server1上有个服务路径是/indexNew,结果就被proxy到了server1,出现404问题,然后紧急修改配置如下: location /i
-
详解nginx location指令
location 介绍 location是Nginx中的块级指令(block directive),,location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明. 开始之前先明确一些约定,我们输入的网址叫做请求URI,nginx用请求URI与location中配置的URI做匹配. Nginx的HTTP配置主要包括三个区块,结构如下: http { //这个是协议级别 include mime.t
-
nginx 配置指令之location使用详解
目录 前言 配置策略 具体属性介绍 Nginx是支持世界上所有网站三分之一的Web服务器.因为轻巧,模块化,用户友好的配置格式以强大的反向代理能力,Nginx迅速取代其他Web服务器成了互联网上最常用Web服务器之.作为一个门户和对外暴露的入口,Nginx也是Web服务在保障企业服务在性能和安全方面功不可没,虽然Nginx也暴露过一些漏洞(比如CVE-2013-4547,CVE-2017-7529,CVE-2018-16843/16844,CVE-2019-9516和CVE-2020-12440
-
nginx配置指令之server_name的具体使用
目录 前言 server_name指令 精确匹配配置 通配符模式配置 正则表达式配置 server_name与host匹配优先级如下: 如果都不匹配 前言 作为nginx的http模块中的重要指令,对于使用nginx的同学来说,有必要做深入的了解: server_name指令 用于设置虚拟主机服务名称,如:127.0.0.1 . localhost .域名[www.baidu.com | www.jd.com] 关于 server_name 的配置方式有三种,分别是: 精确匹配 通配符匹配 正则
-
Nginx Location指令URI匹配规则详解小结
1.介绍 location指令是http模块当中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器.非法的请求直接拒绝并返回403.404.500错误处理等. 2.location指令语法 location [=|~|~*|^~|@] /uri/ { - } 或 location @name { - } 3.URI匹配模式 location指令分为两种匹配模式: 1> 普通字符串匹配:以=开头或开头无引导字符(-)的规则 2> 正则匹配:以
-
Nginx配置指令location匹配符优先级和安全问题
最近一直在做location 配置,遇到优先级别问题(如果配置不当可能存在安全隐患哦),以下是个人学习一点体会. 一. location 的匹配符1.等于匹配符:=等于匹配符就是等号,特点可以概括为两点:精确匹配不支持正则表达式2.空匹配符空匹配符的特点是:匹配以指定模式开始的 URI不支持正则表达式3.正则匹配符:~正则匹配符是可以使用正则表达式的匹配符.不过这里要强调的是,一般来说~是指:区分大小写的正则匹配而~*表示:不区分大小写的正则匹配但是对于一些对大小写不敏感的操作系统,这两者没有区
-
nginx try_files指令判断文件是否存在实例
现在有这样一个需求,网站根目录下有静态文件,static目录下也有静态文件,static目录下的静态文件是程序批量生成的,我想让nginx在地址不变的前提下优先使用static目录里面的文件,如果不存在再使用根目录下的静态文件,比如访问首页http://example.com/index.html则nginx返回/static/index.html,如果不存在返回/index.html. 经过一番研究可以用if指令实现,关键配置如下,这条配置需要放到靠前的位置 复制代码 代码如下: if (-e
-
Nginx Location 指令简明指南
Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令.Location 指令比较简单,但却是配置 Nginx 过程中不得不去了解的. Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的"/uri/",可以是字符串或正则表达式.但如果要使用正则表达式,则必须指定前缀. 一.基本语法 1.location [=|~|~*|^~|@] /uri/ { - } [=] 表示精确匹配,如果找到,立即停止搜索并立即处理此请求. [~
随机推荐
- Ruby中钩子方法的运用实例解析
- vbs TLI.TLIApplication 被遗忘的COM组件
- php短信接口代码
- 浅谈如何使用 webpack 优化资源
- 基于JS实现省市联动效果代码分享
- Android编程之代码创建布局实例分析
- Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
- 隐藏ASP木马后门的两种方法
- C++类中的static和const用法实例教程
- IIS7中Ajax.AjaxMethod无效的原因及解决方法
- BOM与DOM的区别分析
- MongoDB中游标的深入学习
- express的中间件basicAuth详解
- 基于jquery实现漂亮的动态信息提示效果
- win2008r2 AD用户账户的批量导入方法
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- javaweb实现在线支付功能
- java枚举的使用示例
- java Collection 之List学习介绍
- 使用数字签名实现数据库记录防篡改(Java实现)