【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;它就是《植物大战…

Ubuntu使用apt安装opengl

记录一下&#xff0c;免得找。 sudo apt-get install libgl1-mesa-dev* sudo apt-get install build-essential sudo apt-get install libgl1-mesa-dev sudo apt-get install libglu1-mesa-dev sudo apt-get install libegl1-mesa-dev sudo apt-get install libglut-dev参考

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

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

如何使用Spring Boot Profiles进行环境配置管理

如何使用Spring Boot Profiles进行环境配置管理 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何利用Spring Boot Profiles来管理不同环境…

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

文章目录 一、前言二、神经网络与多层感知机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 方法实现数据的标准输出。…

JavaScript基础知识 面试题1

数据类型&#xff1a; Number&#xff1a;表示数字&#xff0c;包括整数和浮点数。 String&#xff1a;表示文本数据。 Boolean&#xff1a;表示逻辑值&#xff0c;只有两个值&#xff1a;true和false。 Null&#xff1a;表示空值或者不存在的对象。 Undefined&#xff1a;表示…

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

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

Spring Boot中使用Swagger生成API文档

Spring Boot中使用Swagger生成API文档 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在现代的软件开发中&#xff0c;良好的API文档是团队协作和开发效率不可或…

如何使用Java中的WebSocket?

如何使用Java中的WebSocket&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨如何在Java中使用WebSocket技术&#xff0c;实现高效的实…

码题杯:我会修改图

原题链接&#xff1a;码题集OJ-我会修改图​​​​​​ 题目大意&#xff1a;给你一张n个点&#xff08;编号为1∼n&#xff09;&#xff0c;m条边&#xff08;编号为1∼m&#xff09;的无向图&#xff0c;图上每个点都有一个点权&#xff0c;权值分别为a1​,a2​,…,an​&…

华为---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…

QT QML使用RabbitMQ

文章目录 步骤1:安装依赖步骤2:创建C++类处理RabbitMQ通信步骤3:将C++类与QML绑定步骤4:创建QML界面步骤5:配置项目文件总结要在Qt中使用RabbitMQ,并且使用QML作为界面部分,你需要结合Qt的C++和QML模块。以下是一个示例项目,它演示了如何使用C++库 SimpleAmqpClient 来…

更改网页标题(方法2)

如果你想要在多个页面中统一地改变特定页面的标题&#xff0c;而不是在每个页面中单独嵌入JavaScript代码&#xff0c;你可以使用一个外部JavaScript文件&#xff0c;并在需要改变标题的页面上引用这个文件。这样&#xff0c;你就不需要在每个页面上重复相同的代码了。 以下是…

Apache Doris 2.1.4 版本正式发布

亲爱的社区小伙伴们&#xff0c;Apache Doris 2.1.4 版本已于 2024 年 6 月 26 日正式发布。在 2.1.4 版本中&#xff0c;我们对数据湖分析场景进行了多项功能体验优化&#xff0c;重点修复了旧版本中异常内存占用的问题&#xff0c;同时提交了若干改进项以及问题修复&#xff…

HBase的概念、运行原理及分析

HBase 是一个分布式的、面向列的开源数据库&#xff0c;由 Apache 软件基金会维护&#xff0c;基于 Google 的 Bigtable 论文设计。它运行在 Hadoop 文件系统&#xff08;HDFS&#xff09;之上&#xff0c;并且能够处理大规模结构化数据的存储和访问。主要特点包括&#xff1a;…

linux桌面运维----第三天

1、Linux登录信息命令&#xff1a; whoami命令&#xff08;记住&#xff09; 作用&#xff1a;查看当前活动用户 ​语法&#xff1a;whoami 选项 ​选项&#xff1a; --help  在线帮助。--vesion  显示版本信息 2、获取命令帮助手册&#xff1a; man 命令名命令名 …

自动驾驶仿真Carla入门

Carla自动驾驶仿真平台学习指南 一、入门阶段 了解Carla基本概念 Carla&#xff1a;一个用于自动驾驶研究的开源仿真平台&#xff0c;提供高度可定制化的城市环境和车辆模型。支持Python和C API&#xff0c;用于控制仿真场景、车辆行为和传感器模拟。安装Carla 访问Carla官方…