锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 专题栏目
  3. Nginx专题
  4. Nginx多location实现多个静态资源的访问

Nginx多location实现多个静态资源的访问

0
  • Nginx专题
  • 发布于 2024-08-09
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

摘要:最近在自己的云服务器上部署了前端项目(原来已部署一个项目),这就需要通过 Server 块的配置,实现多个项目位于同一台服务器,记录下配置方法如下

        由于之前在服务器上放了个静态页面,占用了通用的匹配规则,再增加其他内容需处理多了 location 的匹配规则。

1. Nginx 的配置文件结构

        先复习下 Nginx 的配置文件结构分如下三部分全局块、events 块、http 块。

user nginx;
worker_processes auto;  ## 全局块
 
events {    ## events块
    worker_connections 1024;
}
 
http {      ## http块
    include mime.types;  ## http全局块
    default_type application/octet-stream;
    
    server {             ## server块
        listen 80;
        server_name example.com;
        
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}
  • user nginx:指定 Nginx 运行的用户和用户组。
  • worker_processes auto:设定 Nginx 使用多少个 worker 进程来处理请求,使用auto表示根据 CPU 核心数动态设置。
  • events { ... }:配置事件处理模型,包括连接数等参数。
  • http { ... }:配置 HTTP 服务的全局设置。
    • include mime.types:引入 MIME 类型配置文件。
    • default_type application/octet-stream:默认的 MIME 类型。
    • server { ... }:定义一个虚拟主机。
      • listen 80:监听端口。
      • server_name example.com:指定域名。
      • location / { ... }:定义 URI 匹配规则和对应的处理逻辑。
        • root /usr/share/nginx/html:指定根目录。
        • index index.html:默认首页文件。

        此处需要配置的是 server 块中的 location,它是 Nginx 中的块级指令 (block directive),location 指令的功能是用来匹配不同的 url 请求,进而对请求做不同的处理和响应。

2. location 的匹配规则

        从上可以看出实现多个静态资源的访问,需要修改 server 中 location 的配置,按照一定的规则匹配不同的资源。location 的匹配规则如下:

模式含义
location = /url= 表示精准匹配,只有内容同表达式完全一致才会匹配成功。
location = /abc/ {...}
#只匹配 http://abc.com/abc
#http://abc.com/abc [匹配成功]
#http://abc.com/abc/index [匹配失败]
location ^~ /url^~ 开头对 URL 路径进行前缀匹配,并且在正则之前
location ^~ /index/ {.....}
#以 /index/ 开头的请求,都会匹配上
#http://abc.com/index/index.page [匹配成功]
#http://abc.com/error/error.page [匹配失败]
location ~ pattern表示区分大小写的正则匹配
location ~ /Abc/ {.....}
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配失败]
location ~* pattern表示不区分大小写的正则匹配
location ~* /Abc/ {.....}
# 则会忽略 uri 部分的大小写
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配成功]
location /url不带任何修饰符,也表示前缀匹配,但是在正则匹配之后
location /index/ {......}
#http://abc.com/index [匹配成功]
#http://abc.com/index/index.page [匹配成功]
#http://abc.com/test/index [匹配失败]
#http://abc.com/Index [匹配失败] 
location /通用匹配,任何未匹配到其他 location 的请求都会匹配到,兜底的相当于 switch 中的 default。

nginx 基础配置:多个 location 转发任意请求或访问静态资源文件_nginx 前端转发指向不同的静态资源 - CSDN 博客文章浏览阅读 3.4w 次,点赞 4 次,收藏 10 次。server {#监听的端口 listen 80; #监听的域名 server_name localhost; #监听带后缀的 url location ^~.txt { #文件放到 / html 文件夹下 root /;}..._nginx 前端转发指向不同的静态资源 https://blog.csdn.net/tutian2000/article/details/81531513https://blog.csdn.net/tutian2000/article/details/81531513

          最终,location 添加多个,但是要相互之间不要冲突,否则会请求超时。nginx 配置文件修改如下:

user  nginx;
worker_processes  auto;
 
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
    **server {
      listen 80; # 监听端口
      server_name your_domain.com; # 域名或者服务器 IP
 
      location /daohang {
        alias /usr/share/nginx/html2; # 静态资源文件目录
        index index.html; # 默认首页文件
      }
      location / {
        root /data/wwwroot/mallv/; # 慕慕生鲜用户
        index index.html index.htm; # 默认首页文件
      }
      location /admin {
        alias /data/wwwroot/admin/; # 慕慕生鲜管理员
        index index.html index.htm; # 默认首页文件
      }
    }**
    include /etc/nginx/conf.d/*.conf;
}
标签: #软件开发 1171
相关文章

Nginx部署前端Vue项目 2024-09-26 17:57

在使用Nginx部署前端Vue项目时,我们主要关注的是如何高效地将静态资源(HTML、CSS、JavaScript、图片等)提供给客户端浏览器。Vue.js是一个流行的JavaScript框架,用于构建用户界面,而Nginx作为一个高性能的HTTP和反向代理服务器,非常适合用于静态资源的托管。以下将

Nginx+Tomcat负载均衡、反向代理 2024-09-28 15:11

目录 一、代理 1.概述 二、Nginx反向代理 1.七层反向代理 - 动静分离

Centos下安装nginx步骤解析 2024-08-19 16:06

最近研究LNMP,首先要在linux下配置nginx服务器,话不多说,上步骤 1、编译环境gcc g++ 开发库之类的需要提前装好   yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 2、首先安装PC

Nginx 反向代理和负载均衡 2024-08-19 14:21

❤之前粗略的学习了一下nginx,也能够简单的进行使用,但时间长了难免就会出现遗忘,遇到命令啥的有时候还得去网上搜,索性就自己整理了一份,以后看起来也比较方便。有什么不对的地方还请大家多多指正。 目录 一、nginx 简介 1、nginx 概述 2、正向代理 3、反向代理 4、负载均衡<

nginx: [emerg] getpwnam(“nginx“) failed in /etc/nginx/nginx.conf:1 2024-08-13 17:01

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net 在 Nginx 配置文件(/etc/nginx/nginx.conf)中出现错误信息 “ngin

隐藏nginx响应头中的server信息(HTTP服务器版本信息泄漏) 2024-08-13 13:40

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net 安全审计中有时会有 漏洞名称 HTTP 服务器版本信息泄漏 漏洞描述 目标服务器

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.