【Nginx】静态资源访问配置

news2024/11/19 21:19:08

@ 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 resources
    location /public/ {
        root /path/to/your/public/directory;
        try_files $uri $uri/ =404;
    }

    # Optional: Handle other routes if needed
    location / {
        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 server
    location /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 server
    location /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.coloradmin.cn/o/1867126.html

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

相关文章

Redis-Geospatial数据类型及其常用命令详解

1.Redis概述 2.Geospatial 数据类型 Redis 的 Geospatial 数据类型可以存储地理空间的位置信息和执行地理相关的查询。比如查找指定半径内的所有位置、计算两个位置之间的距离等。Redis 使用有序集合 (sorted sets) 来实现这些功能。 3.存储和性能 Geospatial 数据在 Redis 中…

2023 年度国家科学技术奖励公布

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

php goto解密脚本源码

php goto解密脚本源码 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89426171 更多资源下载&#xff1a;关注我。

【数学建模】 函数极值与规划模型

文章目录 函数极值与规划模型1. 线性代数和线性规划的联系1.1 线性代数的基本概念1.2 线性规划的基本概念1.3 线性代数与线性规划的联系矩阵和向量线性方程组单纯形法内点法凸优化 1.4 例子 2. Numpy有关矩阵运算示例2.1 矩阵的创建2.2 矩阵的基本运算2.3 矩阵的合并2.4 矩阵的…

.NET C# 使用OpenCV实现人脸识别

.NET C# 使用OpenCV实现模型训练、人脸识别 码图~~~ 1 引入依赖 OpenCvSHarp4 - 4.10.0.20240616 OpenCvSHarp4.runtime.win - 4.10.0.20240616 2 人脸数据存储结构 runtime directory | face | {id}_{name} | *.jpg id - 不可重复 name - 人名 *.jpg - 人脸照片3 Demo 3.…

搞定求职难题:工作岗位列表+简历制作工具 | 开源专题 No.75

SimplifyJobs/New-Grad-Positions Stars: 8.5k License: NOASSERTION 这个项目是一个用于分享和跟踪美国、加拿大或远程职位的软件工作机会列表。该项目的核心优势和关键特点如下&#xff1a; 自动更新新岗位信息便捷地提交问题进行贡献提供一键申请选项 BartoszJarocki/cv…

SR655 OCP3 网卡Legacy PXE 轮循设置

1、更改UEFI Boot Mode为UEFI&#xff0c;保存重启服务器&#xff0c;再次进入UEFI界面调整如下图例 更改如下所有网卡legacy 为PXE。后将Boot Mode 更改为legacy,保存退出。 如下图例操作依次更改所有网卡口 2、步骤1&#xff0c;更改Boot Mode 为Legacy保存退出重启服器后&…

SAP揭秘者-在QM标准功能增加取消UD的功能第二季

文章摘要&#xff1a; 上篇文章我已经给大家介绍怎么开发两个程序来取消UD&#xff0c;但是上篇文章中有提到这个时候去直接执行ZQEVAC40程序去取消物料凭证 则会报错&#xff0c;那么为了解决这个报错&#xff0c;我们需要更改后台配置。 接下来我给大家讲后台配置该怎么配置&…

Jetpack架构组件_Navigaiton组件_1.Navigaiton切换Fragment

1.Navigation主要作用 方便管理Fragment &#xff08;1&#xff09;方便我们管理Fragment页面的切换 &#xff08;2&#xff09;可视化的页面导航图&#xff0c;便于理清页面间的关系。 &#xff08;3&#xff09;通过destination和action完成页面间的导航 &#xff08;4&a…

Docker 命令——安全

我们将学习两个命令。第一个命令是 docker container run 命令&#xff0c;这样你就能看到使用该命令的一些好处。其次&#xff0c;我们将看看 docker container diff 命令&#xff0c;你可以用它来查看在已有的镜像基础上做了什么。让我们看看如何使用这两个命令来确保容器的安…

【ARM-Linux篇】项目:智能家居

一、项目概述 •项目功能 通过语音控制客厅灯、卧室灯、风扇、人脸识别开门等,可以进行火灾险情监测,可以并且实现Sockect发送指令远程控制各类家电等 •项目描述 全志H616通过串口连接各模块硬件,检测语音的识别结果,分析语音识别的结果来对家电设备进行控制。摄像头拍…

山东大学多核并行2024年回忆版

2024.6.13回忆版 矩阵向量乘不可整除代码 集合通信与点对点通信的区别 块划分、循环划分、循环块划分&#xff08;14个向量&#xff0c;4个进程&#xff09; 按行访问还是按列访问快 SISD系统问题 循环依赖问题 问题&#xff1a;为什么不能对这个循环并行化&#xff0…

Vue移动端动态表单生成组件

FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持6个UI框架&#xff0c;适配移动端&#xff0c;并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件&#xff0c;再复杂的表单都可以轻松搞定。 帮助文档 | 源码下载…

科技赋能·创领未来丨智合同和百胜中国就Contract AI Studio项目达成合作

#智合同 #百胜中国 #AIGC #NLP #LLM #Contract AI Studio 近期&#xff0c;国内AIGC和LLM大语言模型发展可谓是如火如荼&#xff0c;其迅速崛起为社会和产业发展起到了非常重要的作用。人们利用AI技术&#xff08;AIGC、LLM大语言模型、NLP等&#xff09;将其赋能到企业生…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

Linux系统安装和卸载nginx

&#x1f4d6;Linux系统安装和卸载nginx ✅下载✅安装✅启动nginx✅安装成系统服务✅常见问题&#xff1a;80端口被占用了✅卸载✅目录结构 以下介绍的是以源码编译安装方式&#xff1a; ✅下载 官方地址&#xff1a;https://nginx.org/en/download.html 123云盘地址&#x…

YOLOv8数据集标注

1 简介 数据集是必不可少的部分&#xff0c;数据集的优劣直接影响训练效果。一般来说&#xff0c;一个完整的数据集应该包括训练集、测试集和验证集。通常&#xff0c;数据集会被划分为训练集和测试集&#xff0c;比如将数据集的70%用作训练集&#xff0c;30%用作测试集。在进行…

【知识学习】Unity3D——Surface Shaderlightning的概念及使用方法示例

Unity3D是一个广泛使用的跨平台游戏引擎&#xff0c;它提供了强大的图形渲染功能。在Unity中&#xff0c;Shader是用于控制图形渲染过程的程序&#xff0c;它们运行在GPU上&#xff0c;用于计算屏幕上每个像素的颜色。Surface Shader和Lighting是Unity Shader编程中非常重要的概…

JAVA期末速成库(7)第七、八章

一、习题介绍 第七章 Check Point&#xff1a;P251 7.2&#xff0c;7.4&#xff0c;7.16&#xff0c;8.2 Programming Exercise&#xff1a;7.10&#xff0c;7.14&#xff0c;7.26 二、习题及答案 Check Point&#xff1a; 7.2 When is the memory allocated for an ar…

群体优化算法---石墨烯优化算法介绍以及在期权定价上的应用(Black-Scholes模型来计算欧式期权的理论价格)

介绍 石墨烯算法是一种新兴的优化算法&#xff0c;灵感来自于石墨烯的结构和特性。石墨烯是一种由碳原子构成的二维蜂窝状晶格结构&#xff0c;具有优异的机械、电学和热学性能。石墨烯算法通过模拟石墨烯原子之间的相互作用和迁移&#xff0c;来求解复杂的优化问题 基本概念…