nginx 多个location转发任意请求或访问静态资源文件的实现

本文主要介绍了nginx 多个location转发任意请求或访问静态资源文件的实现,分享给大家,具体如下:

server {
 #监听的端口
    listen    80;
 #监听的域名
    server_name localhost;

 #监听带后缀的url
 location ^~\.txt {
  #文件放到/html文件夹下
      root /;
    }
 #监听所有url,没有特殊需求就用这一个location就够了
 #使用通配符只有在没有匹配上其他location的情况下会进入
    location / {
  #去掉了只有url才转发的限制,因为直接访问域名会通不过if从而转发不了请求。

  proxy_pass http://localhost:8080;
    }
  }

附带上匹配规则:

里面的规则自己尝试一下就明白了

以下 为原文↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

server {
 #监听的端口
    listen    80;
 #监听的域名
    server_name localhost;

 #监听带后缀的url
 location ^~\.txt {
  #文件放到/html文件夹下
      root /;
    }
 #监听所有url,没有特殊需求就用这一个location就够了
    location / {
  #没有后缀的请求才会转发 是为了配合上一个location能访问到资源文件而不是转发所有请求。没有特殊需求就不要判断直接proxy_pass到请求
  if (!-e $request_filename){
  proxy_pass http://localhost:8080;
  break;
  }
    }
  }

location可以添加多个,但是要注意相互之间不要冲突,否则转发多种会请求超时

到此这篇关于nginx 多个location转发任意请求或访问静态资源文件的实现的文章就介绍到这了,更多相关nginx  location转发任意请求内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Nginx配置指令location匹配符优先级和安全问题

    最近一直在做location 配置,遇到优先级别问题(如果配置不当可能存在安全隐患哦),以下是个人学习一点体会. 一. location 的匹配符1.等于匹配符:=等于匹配符就是等号,特点可以概括为两点:精确匹配不支持正则表达式2.空匹配符空匹配符的特点是:匹配以指定模式开始的 URI不支持正则表达式3.正则匹配符:~正则匹配符是可以使用正则表达式的匹配符.不过这里要强调的是,一般来说~是指:区分大小写的正则匹配而~*表示:不区分大小写的正则匹配但是对于一些对大小写不敏感的操作系统,这两者没有区

  • 详解Nginx Location配置

    今天有一位同学问到 Nginx 的站点多路径匹配的问题? 1.www.domain.com/a 需要返回 /var/www/domain.com/a/index.html 2.www.domain.com/b 需要返回 /var/www/domain.com/b/index.html 如何配置 Nginx 使之生效? 解决这个问题,第一的反映是直接使用 Nginx 的 location 指令来解决,不过在给出答案之前,我们先来了解一下 Nginx location 指令的基础. Nginx 区块

  • 详解Nginx location 匹配规则

    语法规则 location [=|~|~*|^~] /uri/ { - } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前. location ~ pattern 开头表示区分大小写的正则匹配 location ~* pattern 开头表示不区分大小写的正则匹配 location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后 location / 通用匹配

  • 详解nginx rewrite和根据url参数location

    最近项目中涉及到旧老项目迁移,需要在nginx上做些配置,所以简单学习了下,好记性不如烂笔头,先记下来. rewrite 首先查看下nginx是否支持rewrite: ./nginx -V 不支持说明安装nginx时候缺少pcre,需要重新安装nginx: #安装pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz tar -zxvf pcre-8.34.tar.gz cd pcre-8.

  • Nginx应用之Location路由反向代理及重写策略示例

    一.常用设置 1、日志格式 log_format main '$time_iso8601|$remote_addr|$remote_user|$request_method|$uri|' '$status|$request_time|$request_length|$body_bytes_sent|$bytes_sent|' '$connection|$http_x_forwarded_for|$upstream_addr|$upstream_status|' '$upstream_respon

  • Nginx服务器中的location配置详解

    语法 location  [=|~|~*|^~] /uri/  {...} 规则 = : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别) -: 表示区分大小写的正则匹配 -*:表示不区分大小写的正则匹配 !~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则 /:通用匹配,任何请求都会匹配到 location匹配目标 location匹配测试只使用请求URI的部分,而不使用参数部分.(原因:参数的写法太多,无法精确匹配) location匹配顺序 多

  • nginx配置location方法总结

    location匹配顺序 1."="前缀指令匹配,如果匹配成功,则停止其他匹配 2.普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) 3.正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配 4.如果第三步中有匹配成功,则使用该结果,否则使用第二步结果 注意点 1.匹配的顺序是先匹配普通字符串,然后再匹配正则表达式.另外普通字符串匹配顺序是根据配置中字符长度从长到短,也就是说使用普通字符串配置的location顺序是无关紧要

  • nginx 多个location转发任意请求或访问静态资源文件的实现

    本文主要介绍了nginx 多个location转发任意请求或访问静态资源文件的实现,分享给大家,具体如下: server { #监听的端口 listen 80; #监听的域名 server_name localhost; #监听带后缀的url location ^~\.txt { #文件放到/html文件夹下 root /; } #监听所有url,没有特殊需求就用这一个location就够了 #使用通配符只有在没有匹配上其他location的情况下会进入 location / { #去掉了只有u

  • Nginx 过滤静态资源文件的访问日志的实现

    凌乱的日志 日常使用的 Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js.css.jpg 等静态资源的请求,比较影响查看后端接口调用的日志 本来没有很在意这个东西,不过在浏览一篇关于 Nginx 优化的文章时,发现了一种用 map 定义一个是否写日志的参数的方法,结合最近使用 map 做动态的跨域配置,索性也是学习及记录一下 map 的另一个使用场

  • 使用Express处理请求和托管静态资源方式

    目录 Express Express对比Http模块 Express的主要作用 Express安装 Express静态资源处理 express.static() 托管多个静态资源目录 挂载路径前缀 Express Express时基于Node.js平台,快速.开放.极简的Web开发框架. 通俗的理解: Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的. Express的本质: 就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法 点击前往 Ex

  • uwsgi+nginx代理Django无法访问静态资源的解决

    在部署uwsgi+nginx代理Django的时候,使用uwsgi访问正常,但是使用nginx代理端口访问的时候无法访问静态资源. 解决方法: 查看nginx启动用户,将静态资源赋权给改用户访问即可. 如我的静态资源目录:/data/django/static 赋权:chmod 755 /data/django/static -R uwsgi配置: # uwsig使用配置文件启动 [uwsgi] # 项目所在的根目录 chdir=/data/django/dailyfresh # 指定项目的ap

  • 详解js静态资源文件请求的处理

    本文实例为大家分享了js静态资源文件请求的处理,供大家参考,具体内容如下 html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="index.css" type=

  • nginx中使用nginx-http-concat模块合并静态资源文件

    首先了解一下 nginx-http-concat,他是一个淘宝的开源Nginx模块,是一个能把多个CSS和JS合并成一个请求的Nginx模块,对于Web性能优化非常有意义. Github地址:https://github.com/alibaba/nginx-http-concat, 先看看淘宝用起来是什么样的,访问淘宝网主页,查看源代码可以看到类似的这样的style/script链接 复制代码 代码如下: <link rel="stylesheet" href="//g

  • Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解

    前言 上篇博客说明了Nginx在应用架构中的作用,以及负载均衡的思路.这篇实践一下其中的访问静态资源与访问动态资源的操作. 一.认识访问静态资源与访问动态资源的区别 静态资源:指存储在硬盘内的数据,固定的数据,不需要计算的数据. 如:图片.字体.js文件.css文件等等.在用户访问静态资源时,服务器会直接将这些资源返回到用户的计算机内. 动态资源:指需要服务器根据用户的操作所返回的数据,以及存储在数据库的数据,经过一系列逻辑计算后返回的数据. 如:请求明天的天气信息数据.请求查看账户余额. 二.

  • Nginx 禁止直接访问目录或文件的操作方法

    目录 前言 第一种:autoindex 配置 一级目录或整个虚拟主机开启目录流量 单独目录开启目录流量 二级目录开启目录流量 虚拟目录开启目录流量 第二种:nginx location 配置 一.禁止访问某些后缀文件 二.禁止访问目录或目录下文件 三.禁止访问某个目录下的指定文件后缀文件 四.nginx location 匹配相关 五.nginx 配置图片直接下载不打开 前言 Nginx 默认是不允许列出整个目录的. 如需此功能,打开 nginx.conf 文件或你要启用目录浏览虚拟主机的配置文

  • 解决nginx/apache静态资源跨域访问问题详解

    1. apache静态资源跨域访问 找到apache配置文件httpd.conf 找到这行 #LoadModule headers_module modules/mod_headers.so 把#注释符去掉 LoadModule headers_module modules/mod_headers.so 目的是开启apache头信息自定义模块 在独立主机配置文件中新增header Header set Access-Control-Allow-Origin * 例如: <VirtualHost

  • nginx实现发布静态资源的方法

    步骤 将准备好的静态资源文件放在指定文件夹 更改nginx的配置文件:nginx.conf 启动nginx服务:start nginx (一定要切换到nginx的目录下) 在浏览器中检查是否发布成功 实际操作 把所发布的静态网页放入指定文件夹: 更改nginx的配置文件: nginx.conf配置内容如下: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice;

随机推荐