例解Nginx路径映射

【测试】NGINX - 路径映射规则: location with regex、if(条件判断)、proxy_pass、proxy_set_header 《【docker入门2】实战~如何组织一个多容器项目docker-compose》 - https://www.bilibili.com/video/av61131351?from=search&seid=14332760623178684588 play with docker - https://labs.play-with-docker.com/ 《『中级篇』play ... 阅读详情

本例中的站点层次结构如下所示:

URLLocal PathDescription
www.lotus-scent.com/usr/www/www.lotus-scent.com网站的homepage,静态页面
www.lotus-scent.com/dojodoc/usr/www/dojodocdojo的官方文档由于处于google/aol子域下,由于某些原因有时不能正常访问,建立本地服务器映像
www.lotus-scent.com/blog/usr/www/blogwww.lotus-scent.com 开发人员博客,采用wordpress构建

为实现上述层次结构,在server层次下不定义root,所有目录映射放到location一级定义。对根的映射:

location / {
            root   /usr/www/www.lotus-scent.com;
            index  index.html index.htm;
        }

由于是静态文件,因些只需要定义目录映射即可。

对于dojodoc,定义如下:

location /dojodoc {
        root  /usr/www/;
        autoindex on;
        expires 365d;
        access_log off;
    }

Nginx在解析URL后,后自动将dojodoc附加到根目录/usr/www之后,所以最终生成的文件查找路径为/usr/www/dojodoc。本目录下不但为静态文件(含js),而且几乎从不更新,所以设置expires选项以最大限度利用HTTP缓存。

下面来看blog的映射,首先是:

1 location /blog {
2        root /usr/www;
3        #without this line, access to http://.../blog will yield 404
4        fastcgi_index index.php;
5        if (!-e $request_filename) {
6              rewrite ^/blog/index.php/(.+)$ /blog/index.php?q=$1 last;
7              break;
8        }  

9        include fastcgi_params;
10       fastcgi_pass localhost:9000;
11       fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
12    }

首先,由于server一级并未定义root,所以在这一级必须定义root。为了能让 http://www.lotus-scent.com/blog能指向 http://www.lotus-scent.com/index.php,需要声明'fastcgi_index index.php'这一句。注意,这里针对静态页面使用的'index'指示是不起作用的。

行5~8实现了地址改写。如果一个URL并不是对应着本地的一个静态文件,那么意味着这个地址所请求的内容需要由PHP动态生成,因此,需要进行地址改写。请看第6行。这一行用来处理类似于http://www.lotus-scent.com/index.php/test1 这样的地址。该地址是一个wordpress的固定链接地址,使用了PATHINFO固定链接技术技术(参见使用固定链接)。这样就需要通过Nginx将该地址转换成常规的wordpress地址,再交由php来处理。通过行8的声明,地址改写首先匹配到该地址,然后生成新地址/blog/index.php?q=test1,跳出本次匹配。由于使用了rewrite,因此Nginx通过内部重定向启动再次匹配,'location /blog'再次命中。此次$request_filename为/usr/www/blog/index.php,存在于服务器上,所以跳过行5~8的处理,由行9~11来处理,也就是php来处理。这样,通过地址改写来实现了wordpress的基于PATHINFO技术的固定链接。

如果仔细研究上面的location定义,你会发现对于静态文件,如果该文件是.php文件,那么由PHP引擎来处理(第9~11行)是十分恰当的。但如果该静态文件是js文件或者css文件,显然应该由Nginx直接发送给客户端,不需要PHP引擎来处理。因此,必须专门针对静态文件来定义:

1        location ~* /blog/.*\.(?:ico|css|js|gif|jpe?g|png)$ {
2                root /usr/www;
3                # Some basic cache-control for static files to be sent to the browser
4                expires max;
5                add_header Pragma public;
6                add_header Cache-Control "public, must-revalidate, proxy-revalidate";
7        }

注意第1行括号中的"?:"。它与括号用在一起,表明要匹配括号中的ico,css,js等文件格式中的任意一个即可,但是对于匹配结果无须保存。这是一种提高性能的方式。具体请看正则表达式的语法。

注意这个location是正则表达式匹配,前面那个location是literal匹配,根据Nginx路径匹配的规则,正则表达式匹配一旦成功,就会跳过literal匹配,因此实现了Nginx直接发送静态文件,而不经过PHP引擎处理的要求。关于Nignx路径匹配的优先级问题,请参见Nginx配置文件解析


从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术 本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。 阅读详情

相关推荐

SAP交货单过账避坑指南:序列号处理、Buffer清理与BAPI提交回滚的那些事儿

本文深入解析SAP交货单过账中的序列号处理、Buffer清理与BAPI提交回滚等关键问题,提供WS_DELIVERY_UPDATE和BAPI_OUTB_DELIVERY_CONFIRM_DEC的实战优化方案。通过详细的技术分析和最佳实践,帮助开发者避免常见陷阱,提升交货单处理的稳定性和效率。

weixin_31155097的博客 431

Nginx中使用虚拟路径目录映射

实现效果 location /img/ { root /home/user/image/; } 如果按照如上配置,那在浏览器中访问一定是 http://127.0.0.1/img/img_file.jpg 。它的请求将会这样映射:/home/user/image/img/img_file.jpg,这样没有错,但是如果按照这样配置访问的话,在 /home/user/image/ 文件下一定需要再有一个 img 文件夹。但是现在我想要的效果为img_file.jpg文件直接存在于image文件夹下,且访问

R-青 1万+

高效搭建微信公众号爬虫全流程

微信公众号爬虫系统成功完成功能测试验证。该系统具备完整的数据采集与管理能力,支持多公众号内容爬取、数据存储与统计分析。通过命令行界面可执行爬取操作(如量子位、新智元等公众号),查看最新文章列表和系统统计信息。测试显示SQLite数据库正常存储数据,所有核心功能(多源支持、文章检索、数据统计)均运行良好。系统采用模块化设计,扩展性强,为后续接入真实API或网页爬取奠定了坚实基础,是AI内容聚合的优质开发平台。🎉

weixin_44975687的博客 1556

Nginx-反向代理的location路径映射

nginx反向代理配置,location路径映射问题,反向代理后的实际访问路径

qq_42569946的博客 2122

Langchain4j 文档处理实战:从加载到分割的完整流程解析

本文详细解析了使用Langchain4j进行文档处理的完整流程,涵盖从文档加载、解析到分割的核心步骤。通过实战代码示例,重点介绍了如何利用文档分割器将大文档切割为适合大语言模型处理的片段,并提供了参数调优与避坑指南,帮助Java开发者高效构建AI应用的数据处理基础。

smartcontract5的博客 542

运放比较电路分析以及应用

摘要:本文介绍了基于LM321运放的同相输入型单限电压比较器电路。该电路通过运放开环工作模式实现电平判断:当输入信号Vs+>0V时输出+15V高电平,Vs+<0V时输出≈0V低电平。典型应用包括直流电压过零检测、交流信号整形、电池欠压报警和数字信号噪声过滤。电路具有结构简单(仅需1个运放和1个电阻)、成本低的优势,适用于传感器信号处理、波形转换等场景。使用时需注意参考电平调整、输出电平匹配等问题,如需抗噪声可增加正反馈电阻构成施密特触发器。该电路是运放实现简单电平逻辑的经典方案。

qq_37999850的博客 401

docker-快速部署nginx并映射当前目录静态文件及配置文件

一个小公司也用上了docker,经常需要部署nginx服务,我通常都会把他们上传到一个目录,大概就是下面的样子。这条命令是用于在Docker中运行一个名为“nginx”的容器。就是一个简单的nginx配置(因为经常需要配置代理不想进入容器和拷贝),和指定一个静态文件目录,(静态文件需要经常更新也不想进入容器和拷贝)下面是默认的nginx配置文件default.conf。

qqRZL的博客 2477

基于STM32的智能浇花系统毕业设计(全部资料)

摘要:本文设计了一种基于STM32单片机的智能浇花系统,集成了环境温湿度检测、土壤温湿度监测、LCD显示、Wi-Fi联网及手机APP远程控制等功能。系统通过传感器实时采集环境参数,自动控制水泵工作实现智能灌溉,同时支持用户通过手机APP远程监控和调节。论文详细阐述了硬件选型、软件设计及系统测试过程,验证了系统的稳定性和实用性。该设计为家庭园艺提供了智能化解决方案,具有节水高效、操作便捷等特点。关键词:STM32;智能灌溉;远程控制;环境监测;Wi-Fi通信。

3254968421的博客 1195

nginx访问路径映射资源目录

Nginx映射资源目录是指在Nginx配置文件中设定规则,使得当客户端向Nginx服务器发送请求访问某个URL时,Nginx能够将该URL映射到服务器本地的实际文件目录,从而正确地提供该目录下的静态资源(如HTML、CSS、JavaScript、图片、视频等文件)。例如,请求http://example.com/static/images/image.jpg会映射到服务器上的/path/to/local/directory/static/images/image.jpg。}块来配置MIME类型映射。

weixin_46266464的博客 5896

Python爬虫实战:全面解析裁判文书网法律文书抓取与分析

本文详细介绍了如何使用Python爬虫技术,分别通过Requests+BeautifulSoup、Selenium和Scrapy等方式,爬取裁判文书网的法律文书信息,并进行了验证码处理、数据存储和可视化分析。网页结构分析与数据提取;爬虫框架的使用;验证码处理策略;数据分析与可视化。爬取更多法律文书网站的数据;爬取文书的全文内容;构建法律文书搜索引擎;使用自然语言处理技术对法律文书进行深入分析。

2201_76125261的博客 1332

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1105

Nginx子路径到端口映射

有时候需要使用nginx来将子路径映射到某个特殊端口上,例如下面的场景。 nginx所在服务器的域名为www.service.com,监听在 此服务器上还有一个

周自信的技术博客 8093

【EB_Tresos专题】-01-EB Tresos导入工程

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 6436

Nginx前端映射路径配置规则

nginx前端映射路径配置规则

qq_35240864的博客 1180

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

NGINX负载均衡与本地路径映射

nginx的location匹配规则(优先级) location 匹配规则 匹配的是访问的url在域名和端口号之后的字符串 例如 image.taobao.com/upload/2/df/3/d/3/c/e/3/d/3/asdlkfjlsdjf.jpg ○ 精确匹配 = 例如=/image ○ 字符串前缀匹配^~ 例如^~/image ○ 按照配置顺序的正则匹配,配置在上优先级更高~ 例如~.pn...

Arno的博客 2469

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Nginx】Nginx实现动态路由映射

本文介绍了在Nginx中实现动态路径映射的配置方法,通过正则表达式location捕获URL路径部分,结合alias或root指令实现灵活映射。文章详细讲解了三种典型场景:通用子路径映射、多项目根目录映射和静态资源版本号映射,并提供了可直接使用的配置示例。重点强调了alias和root的区别、Windows路径写法、安全注意事项以及调试技巧。最后总结出正则捕获+$1变量+alias的组合是实现动态路径映射的核心方法,并附上完整server配置示例。全文简明实用,帮助开发者快速掌握Nginx动态路由配置技巧。

No8g攻城狮的博客 1197

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

springboot+nginx访问图片或重写addResourceHandlers映射文件路径

springboot+nginx访问文件或重写addResourceHandlers映射文件路径 每天多学一点点~ 最近跳槽了去新公司,清闲了两周,心里面有点慌,遂研究了点新东西~ 话不多说,这就开始吧… 文章目录springboot+nginx访问文件或重写addResourceHandlers映射文件路径1.序言2.addResourceHandlers方法3.测试映射文件路径4.nginx配...

爆裂无球的程序空间 3265

nginx静态图片路径映射

nginx静态图片路径映射

蔚蓝海域的博客 2066

ngnix 映射路径配置_nginx 目录路径重定向设置方法

1 nginx修改root映射 修改root映射实现nginx目录访问重定向是最简单的方式, 推荐采用这一种. location /image { root /folderName; } 2 通过nginx rewrite内部跳转实现访问重定向 nginx配置代码示例: location /image { rewrite ^/image/(.*)$ /folderName/image/$1 last; } 3 nginx设置别名alias映射实现 配置示例: location /image {

muzlei的博客 4466

ngnix 映射路径配置_nginx做本地目录映射

有时候需要访问服务器上的一些静态资源,比如挂载其他设备上的图片到本地的目录,而本地的目录不在nginx根目录下,这个时候就需要简单的做一下目录映射来解决,比如想通过浏览器http://ip/image/2016/04/29/10/abc.jpg访问到系统目录/image_data/2016/04/29/10/abc.jpg需要在nginx.conf中添加location规则,配置如下:locati...

weixin_39781930的博客 1257

Nginx location 路径映射问题

nginx 配置 proxy_pass时可以实现URL路径的部分替换 1.proxy_pass的目标地址后,默认不带/,表示只代理域名,url和querystring部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL) 2.目标地址后带/,则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址 例子: server { location /xxx { proxy_pass ht...

流氓兔的博客 5061

nginx访问路径映射服务器资源文件

例如,请求http://example.com/static/images/image.jpg会映射到服务器上的/path/to/local/directory/static/images/image.jpg。这种映射通常通过配置location指令来实现。原来是因为我的前端项目是通过docker启动的nginx,所以要在docker-compose.yml中配置路径映射,如:我的文件是在服务器的/root/nginx-haijing-energy/nginx/apk目录下而我的nginx配置为。

好好学习,天天向上 2575

NGINX ALISA入门:5分钟学会路径映射

比如你想让用户通过"/images"访问服务器上的"/var/www/myphotos",ALIAS就能帮你实现这个映射关系。配置好后,访问yourdomain.com/static/logo.png实际上会返回/home/user/website/assets/logo.png这个文件。如果你的图片存放在非web根目录的其他位置,比如专门的文件服务器上,用ALIAS可以优雅地暴露这些资源。假设我们有个简单的需求:把"/static"映射到"/home/user/website/assets"目录。

BlackironPanther23的博客 360

nginx中location后的路径映射/ 的区别

location /sxwd/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8090/; } 访问localhost/sxwd/xxxx时 会代理到 127.0.0.1:8090/xxxx 就相当于先完全

lzh_2_4的博客 5895

docker安装nginx并配置映射

docker安装nginx并配置映射1. 下载镜像,并复制默认配置2. 停止删除容器3. 生成启动文件 - start.sh4. 运行start.sh 启动mynginx5. 访问`http://192.168.3.27/`可以访问到nginx默认页面6. 配置反向代理 1. 下载镜像,并复制默认配置 docker run --name mynginx -d nginx # 创建主机挂载配置文件 ...

wnfff的博客 5288

Nginx location(路径替换)

Nginx location(路径替换) 页面访问路径: 其中ip1和port1 为nginx的IP和端口,ip2和port2为代理后端服务的IP和端口 http://ip1:port1/x1/x2/search/search_tips?text= 想要实现,在nginx中如果匹配到x1/x2后; 将真实的访问导向到ip2:port2的search/search_tips这个服务 http://ip2:port2/search/search_tips?text= 所以上述的请求,采用第二种..

qq_16481385的博客 1万+
上一篇: Nginx日志分析--路径匹配篇
下一篇: 深度体验Javascript 模块设计模式
yaaron
博客等级 码龄19年 7粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值