【Nginx】静态资源访问配置

@ nginx 静态资源访问配置

Nginx 静态资源访问配置

通过该片文章,你能了解图中的内容:

在这里插入图片描述

实际问题

Nginx 应该怎么写,才能匹配这个图片资源路径?

http://47.120.10.110:7001/public/images/picture.jpg

解决方案

你需要配置一个 Nginx 服务器块,并指定适当的 location 指令来处理这个 URL 路径。下面是一个示例配置:

server {listen 7001;server_name 47.120.10.110;location /public/images/ {root /path/to/your/images/directory;try_files $uri $uri/ =404;}# Optional: Handle other static resourceslocation /public/ {root /path/to/your/public/directory;try_files $uri $uri/ =404;}# Optional: Handle other routes if neededlocation / {proxy_pass http://your_backend_server;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_set_header X-Forwarded-Proto $scheme;}
}

配置说明:

  1. listen 7001:

    • 配置 Nginx 监听端口 7001。
  2. server_name 47.120.10.110:

    • 配置服务器名称为 47.120.10.110
  3. location /public/images/:

    • 配置匹配 /public/images/ 路径的 location 块。
    • root: 指定图片文件的根目录路径,假设你的图片存储在 /path/to/your/images/directory
    • try_files: 尝试找到请求的文件,如果找不到则返回 404 错误。
  4. Optional: Handle other static resources:

    • 如果你有其他静态资源,可以配置相应的 location 块。例如 /public/ 路径可以对应到 /path/to/your/public/directory
  5. Optional: Handle other routes if needed:

    • 如果你有其他需要处理的路由,可以使用 proxy_pass 将请求转发到后端服务器。

完整示例:

假设你的图片文件存储在 /var/www/myapp/public/images/,你的 Nginx 配置文件可能如下:

server {listen 7001;server_name 47.120.10.110;location /public/images/ {root /var/www/myapp;try_files $uri $uri/ =404;}location /public/ {root /var/www/myapp;try_files $uri $uri/ =404;}location / {proxy_pass http://127.0.0.1:3000;  # 假设你的后端服务器在本地的 3000 端口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_set_header X-Forwarded-Proto $scheme;}
}

使用步骤:

  1. 将 Nginx 配置文件保存到适当的路径(通常是 /etc/nginx/sites-available//etc/nginx/conf.d/)。
  2. 检查配置文件的语法是否正确:
    sudo nginx -t
    
  3. 重新加载 Nginx 配置:
    sudo systemctl reload nginx
    
  4. 确保你的图片文件存储在 /var/www/myapp/public/images/ 目录下。

这样,当你访问 http://47.120.10.110:7001/public/images/picture.jpg 时,Nginx 会从指定的文件目录中查找并返回对应的图片文件。

配置文件命名

/etc/nginx/conf.d/ 目录中保存 Nginx 配置文件时,可以使用任何你认为合适的文件名,只要它以 .conf 扩展名结尾即可。通常建议使用描述性强的文件名,以便于理解和管理。比如,如果你的配置是用于某个特定的应用或网站,可以命名为 <your_application>.conf 或者 <your_website>.conf

例如,如果你的应用名为 myapp,那么可以命名为 myapp.conf

sudo nano /etc/nginx/conf.d/myapp.conf

然后在该文件中编写你的 Nginx 配置。完成后,保存文件并重新加载 Nginx 配置使其生效:

sudo systemctl reload nginx

这样,Nginx 将根据 myapp.conf 中的配置来处理请求。

为什么是存放在 conf.d/ 目录?

先来看系统目录树:

/
├── etc/
│   ├── nginx/
│   │   ├── conf.d/
│   │   ├── default.d/
│   │   └── nginx.conf
│   └── opt
├── sys
├── tmp
├── ...
└── www

图示:

在这里插入图片描述

nginx.conf 核心代码:

http {include /etc/nginx/conf.d/*.conf;server {include /etc/nginx/default.d/*.conf;}
}

相信你已经看明白了!简单解释就是:

  1. 如果你要另起一个server就将.conf配置文件放在conf.d/目录下;
  2. 如果你要沿用当前server,比如在 80端口服务下,创建一个静态资源映射:
# /nginx/nginx.conf
server {listen 80;server_name example.com;# 根据上面的 `include`会自动引用`/nginx/default.d/*.conf/`配置文件# 自然就包含下面的`static.conf`配置文件}# /nginx/default.d/static.conf
location /api/public/images/ {alias /path/to/your/images/directory/;try_files $uri $uri/ =404;
}

不需要端口号,怎么处理

假设你希望通过 http://47.120.10.110/public/images/picture.jpg 来访问该图片,示例配置:

Nginx 配置

server {listen 80;server_name 47.120.10.110;# Proxy /api requests to the backend serverlocation /api {proxy_pass http://localhost:7001;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}# Proxy /public/images/ requests to the backend serverlocation /public/images/ {proxy_pass http://localhost:7001/public/images/;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}# Other configurations...
}

配置说明

  • listen 80:

    • 配置 Nginx 监听 80 端口。
  • server_name 47.120.10.110:

    • 设置服务器名称为 47.120.10.110
  • location /api:

    • 代理 /api 路径的请求到 http://localhost:7001
  • location /public/images/:

    • 代理 /public/images/ 路径的请求到 http://localhost:7001/public/images/
  • proxy_pass http://localhost:7001/public/images/:

    • /public/images/ 的请求代理到你的本地服务 http://localhost:7001/public/images/
  • proxy_http_version 1.1:

    • 使用 HTTP/1.1 版本。
  • proxy_set_header:

    • 设置请求头信息。

访问图片资源

  • 现在,你可以通过 http://47.120.10.110/public/images/picture.jpg 来访问你的图片文件,这个请求将会被代理到 http://localhost:7001/public/images/picture.jpg

重新加载 Nginx 配置

完成配置后,保存文件并重新加载 Nginx 配置:

sudo systemctl reload nginx

这样,Nginx 将会处理 /public/images/ 路径下的所有请求,并将它们代理到你的后端服务器 http://localhost:7001/public/images/。确保所有路径和配置都正确无误,这样浏览器就能正确地加载和显示你的图片资源了。

【Vinca】 欢迎点赞、评论、收藏,您的支持将是我分享更多资源的动力哦~
🌸

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

植物大战僵尸杂交版v2.1最新整合版,附PC端+安卓端+iOS端安装包+修改器+安装教程!

嘿&#xff0c;大家好&#xff0c;我是阿星&#xff0c;今天要跟大家聊聊一款游戏&#xff0c;它不是那种让人眼花缭乱的大制作&#xff0c;也不是那种能让人回味无穷的艺术作品&#xff0c;但它在阿星心里&#xff0c;绝对是神作中的佼佼者。没错&#xff0c;它就是《植物大战…

经验分享,免费商标查询网站

有时候想快速查询商标状况&#xff0c;官方网站比较慢&#xff0c;这里分享一个免费快速的网站。 网址&#xff1a;https://www.sscha.com/ 截图&#xff1a;

深度之眼(二十六)——神经网络基础知识(一)

文章目录 一、前言二、神经网络与多层感知机2.1 人工神经元2.2 人工神经网络2.3 多层感知机2.4 激活函数 一、前言 看了下课程安排&#xff0c;自己还是没安排好&#xff0c;刚刚捋清了一下思路。 基础&#xff1a;python、数理 认识&#xff1a;神经网络基础、opencv基础、py…

sys.stdout.write()方法——标准输出打印

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 Sys.Stdout是sys模块中的标准输出对象&#xff0c;可以实现将数据向屏幕、文件等进行输出。Sys.Stdout通过write 方法实现数据的标准输出。…

RK3588 Android13 TvSetting 中性能浮窗RAM显示bug

前言 电视产品,客户发现在设备偏好设置->高级设置->性能浮窗菜单里显示的 RAM 大小是错误的, 要求改成正确的,并且屏幕密度修改后,这个浮窗显示不全,也需要一起处理。 效果图 TvSetting 部分修改文件清单 bug 原因在于 Formatter.formatFileSize 这个 API,我们…

华为---VRRP基本配置(一)

10、VRRP 10.1 VRRP基本配置 10.1.1 原理概述 随着Internet的发展&#xff0c;人们对网络可靠性的要求越来越高。对于用户来说&#xff0c;能够时刻与外部网络保持通信非常重要&#xff0c;但内部网络中的所有主机通常只能设置一个网关IP地址&#xff0c;通过该出口网关实现…

CVE-2020-26048(文件上传+SQL注入)

简介 CuppaCMS是一套内容管理系统&#xff08;CMS&#xff09;。 CuppaCMS 2019-11-12之前版本存在安全漏洞&#xff0c;攻击者可利用该漏洞在图像扩展内上传恶意文件&#xff0c;通过使用文件管理器提供的重命名函数的自定义请求&#xff0c;可以将图像扩展修改为PHP&#xf…

Qt:2.环境搭建

目录 1.搭建需要的三个组件&#xff1a; 2.下载Qt安装包&#xff1a; 3.安装qt&#xff1a; 4.配置环境变量&#xff1a; 1.搭建需要的三个组件&#xff1a; C编译器&#xff08;gcc&#xff0c;cl.exe等&#xff09;Qt的SDK&#xff1a;软件开发工具包&#xff0c;Windows…

玩转AI之四个免费热门的AI工具

2023年&#xff0c;可以说称之为人工智能元年&#xff0c;随着 AI 人工智能、机器学习技术的不断发展&#xff0c;各种 AI 算法的应用也越来越广泛&#xff0c;在AI这一领域中&#xff0c;软件、工具和网站如雨后春笋般涌现。下半年&#xff0c;预计会有更多王炸级别的产品问世…

打破数据分析壁垒:SPSS复习必备(十)

Means过程 统计学上的定义和计算公式 定义&#xff1a;Means过程是SPSS计算各种基本描述统计量的过程&#xff0c;其实就是按照用户指定条件&#xff0c;对样本进行分组计算均数和标准差&#xff0c;如按性别计算各组的均数和标准差。 用户可以指定一个或多个变量作为分组变…

java基于ssm+jsp 社区生活超市管理系统

1前台首页功能模块 社区生活超市管理系统 &#xff0c;在社区生活超市管理系统可以查看首页、商品信息、我的、跳转到后台等内容&#xff0c;如图1所示。 图1系统首页界面图 用户登录、用户注册&#xff0c;通过注册填写用户账号、密码、用户姓名、性别、用户手机、送货地址等…

观测云 VS 开源自建

观测云是一款面向全技术栈的监控观测一体化产品方案&#xff0c;具备强大而丰富的功能&#xff0c;目标是帮助最终用户提升监控观测的能力&#xff0c;化繁为简&#xff0c;轻松的构建起完整的监控观测体系。同时能够帮助整个企业的开发技术团队从统一的观测能力上获得完整的收…

ACL 2023事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总

ACL 2023事件抽取相关(事件抽取、事件关系抽取、事件预测等)论文汇总&#xff0c;后续会更新全部的论文讲解。 Event Extraction Code4Struct: Code Generation for Few-Shot Event Structure Prediction 数据集&#xff1a;ACE 2005 动机&#xff1a;与自然语言相比&#xf…

文件上传漏洞---Pyload

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 本文重点从靶场案例分析文件上传漏洞常见的Pylod&#xff0c;本文演示靶场upload-labs 一.文件类型---Pyload 不同的文件对应不同的文件类型&#xff0c;后端代码通过限制特定的文件类型…

fastadmin框架修改前端时间戳格式的时区

一、上传文件 将 moment-timezone-with-data.js 和 moment-timezone-with-data.min.js 文件上传到项目的 \public\assets\libs\moment\ 文件夹中。 二、配置中引入文件 在 \public\assets\js\require-backend.js 文件中增加所引入文件的配置: moment-timezone-with-data: …

JS(JavaScript)入门指南(DOM、事件处理、BOM、数据校验)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 玉阶生白露,夜久侵罗袜。 却下水晶帘,玲珑望秋月。 ——《玉阶怨》 文章目录 一、DOM操作1. D…

SpringCloud Alibaba Sentinel中@SentinelResource使用实践总结

Sentinel 提供了 SentinelResource 注解用于定义资源&#xff0c;并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。 注意&#xff1a;注解方式埋点不支持 private 方法。 官网地址&#xff1a;注解埋点支持 【1】资源名称限流 ① controller方法 GetMapp…

LabVIEW技术交流-布尔灯仿真数码管

问题来源 闲来无事&#xff0c;逛论坛问答&#xff0c;看到这样一个问题&#xff0c;觉得有意思&#xff0c;就自己尝试下。 这个功能其实是不难的&#xff0c;就是显示不同的数值时&#xff0c;对相应的布尔灯进行真假值操作就行了。但是我又想到了更有趣的玩法&#xff0c;能…

C#学习系列之DataGrid无故添加空行

C#学习系列之DataGrid无故添加空行 前言解决前解决后总结 前言 采用别人的轮子&#xff0c;想在基础上改界面&#xff0c;但是copy后&#xff0c;无论怎么样都会有空行&#xff0c;实在是绑定数据的输入没有任何赋值。 解决前 绑定的数据中输入三组数据&#xff0c;但是没有第…

【Academy】测试WebSockets安全漏洞Testing for WebSockets security vulnerabilities

测试WebSockets安全漏洞Testing for WebSockets security vulnerabilities 概述WebSockets是什么?HTTP和WebSockets有什么区别&#xff1f;如何建立WebSocket连接&#xff1f;WebSocket消息看起来像什么&#xff1f; 操纵WebSocket流量拦截和修改WebSocket消息重放和生成新的W…