Nginx静态资源概述

上网去搜索访问资源对于我们来说并不陌生,通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面的一个过程。这个时候,我们所请 求的内容就分为两种类型,一类是静态资源、一类是动态资源。
静态资源即指在服务器端真实存在并且能直接拿来展示的一些文件,比如常见的html页面、css文件、js文件、图 片、视频等资源;
动态资源即指在服务器端真实存在但是要想获取需要经过一定的业务逻辑处理,根据不同的条件展示在页面不同这 一部分内容,比如说报表数据展示、根据当前登录用户展示相关具体数据等资源;

Nginx处理静态资源的内容,我们需要考虑下面这几个问题:

(1)静态资源的配置指令
(2)静态资源的配置优化
(3)静态资源的压缩配置指令
(4)静态资源的缓存处理
(5)静态资源的访问控制,包括跨域问题和防盗链问题

Nginx静态资源的配置指令

listen指令

listen:用来配置监听端口。

语法 listen address[:port] [default_server]…;
listen port [default_server]…;
默认值 listen *:80 | *:8000
位置 server

listen的设置比较灵活,我们通过几个例子来把常用的设置方式熟悉下:

listen 127.0.0.1:8000; // listen localhost:8000 监听指定的IP和端口
listen 127.0.0.1;   监听指定IP的所有端口
listen 8000;    监听指定端口上的连接
listen *:8000;  监听指定端口上的连接

default_server属性是标识符,用来将此虚拟主机设置成默认主机。所谓的默认主机指的是如果没有匹配到对应的address:port,则会默认执行的。如果不指定默认使用的是第一个server。

server{listen 8080;server_name 127.0.0.1;location /{root html;index index.html;}
}
server{listen 8080 default_server;server_name localhost;default_type text/plain;return 444 'This is a error request';
}

server_name指令

server_name:用来设置虚拟主机服务名称。

127.0.0.1 、 localhost 、域名[www.baidu.com | www.jd.com]

语法 server_name name …;
name可以提供多个中间用空格分隔
默认值 server_name “”;
位置 server

关于server_name的配置方式有三种,分别是:

精确匹配
通配符匹配
正则表达式匹配

配置方式一:精确匹配

如:

server {listen 80;server_name www.itcast.cn www.itheima.cn;...
}

补充小知识点:

hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

windows:C:\Windows\System32\drivers\etc

centos:/etc/hosts

因为域名是要收取一定的费用,所以我们可以使用修改hosts文件来制作一些虚拟域名来使用。需要修改 /etc/hosts文件来添加

vim /etc/hosts
127.0.0.1 www.itcast.cn
127.0.0.1 www.itheima.cn

配置方式二:使用通配符配置

server_name中支持通配符"*",但需要注意的是通配符不能出现在域名的中间,只能出现在首段或尾段,如:

server {listen 80;server_name  *.itcast.cn   www.itheima.*;# www.itcast.cn abc.itcast.cn www.itheima.cn www.itheima.com...
}

下面的配置就会报错

server {listen 80;server_name  www.*.cn www.itheima.c*...
}

配置三:使用正则表达式配置

server_name中可以使用正则表达式,并且使用~作为正则表达式字符串的开始标记。

常见的正则表达式

代码 说明
^ 匹配搜索字符串开始位置
$ 匹配搜索字符串结束位置
. 匹配除换行符\n之外的任何单个字符
\ 转义字符,将下一个字符标记为特殊字符
[xyz] 字符集,与任意一个指定字符匹配
[a-z] 字符范围,匹配指定范围内的任何字符
\w 与以下任意字符匹配 A-Z a-z 0-9 和下划线,等效于[A-Za-z0-9_]
\d 数字字符匹配,等效于[0-9]
{n} 正好匹配n次
{n,} 至少匹配n次
{n,m} 匹配至少n次至多m次
* 零次或多次,等效于{0,}
+ 一次或多次,等效于{1,}
? 零次或一次,等效于{0,1}

配置如下:

server{listen 80;server_name ~^www\.(\w+)\.com$;default_type text/plain;return 200 $1  $2 ..;
}
注意 ~后面不能加空格,括号可以取值
匹配执行顺序

由于server_name指令支持通配符和正则表达式,因此在包含多个虚拟主机的配置文件中,可能会出现一个名称被多个虚拟主机的server_name匹配成功,当遇到这种情况,当前的请求交给谁来处理呢?

server{listen 80;server_name ~^www\.\w+\.com$;default_type text/plain;return 200 'regex_success';
}server{listen 80;server_name www.itheima.*;default_type text/plain;return 200 'wildcard_after_success';
}server{listen 80;server_name *.itheima.com;default_type text/plain;return 200 'wildcard_before_success';
}server{listen 80;server_name www.itheima.com;default_type text/plain;return 200 'exact_success';
}server{listen 80 default_server;server_name _;default_type text/plain;return 444 'default_server not found server';
}

结论:

exact_success
wildcard_before_success
wildcard_after_success
regex_success
default_server not found server!!
No1:准确匹配server_nameNo2:通配符在开始时匹配server_name成功No3:通配符在结束时匹配server_name成功No4:正则表达式匹配server_name成功No5:被默认的default_server处理,如果没有指定默认找第一个server

nginx ---- 静态资源部署相关推荐

  1. Nginx静态资源部署

    目录 Nginx静态资源概述 Nginx静态资源的配置指令 listen指令 server_name指令 location指令 设置请求资源的目录root / alias index指令 error_ ...

  2. nginx(静态资源部署)linux版

    编辑 nginx.conf 文件 可使用vim编辑器或下载到windows里,修改完后再覆盖(这里使用vim编译器) vim /usr/local/nginx/conf/nginx.conf 在con ...

  3. 04-nginx静态资源部署实战

    一.Nginx进阶篇 1.Nginx服务器基础配置实例 前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述.通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作 ...

  4. Nginx配置文件的结构详解和静态资源部署

    Nginx配置文件的结构详解和静态资源部署 一.配置文件结构 使用Nginx之前,需要先看懂Nginx的配置文件. 因为之后操作Nginx,就是一个对配置文件修改的过程. Nginx的配置文件(con ...

  5. Nginx-应用:静态资源部署、反向代理以及负载均衡

    本章节将要讲解的是Nginx的使用,我们主要从以下四个方面进行讲解. 1.1 配置文件结构 nginx的配置文件(conf/nginx.conf)整体上分为三部分: 全局块.events块.http块 ...

  6. Nginx静态网站部署

    Nginx静态网站部署 3.1 静态网站的部署 将我们之前生成的静态页(d:\item)上传到服务器的/usr/local/nginx/html下即可访问 3.2 配置虚拟主机 虚拟主机,也叫&quo ...

  7. nginx静态资源的服务器配置方法

    Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现,这篇文章主要介绍了nginx静态资源的服务器配置方法 ...

  8. Nginx 静态资源缓存配置

    示例 # Media: images, icons, video, audio, HTC location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|m ...

  9. nginx静态资源反向代理

    nginx静态资源反向代理 server { listen 80; server_name music.didi365.com; index index.php index.html index.ht ...

最新文章

  1. Hadoop 2.0 Yarn代码:心跳驱动服务分析
  2. java反射field和method的顺序问题
  3. leetcode算法题--视频拼接
  4. 读取word对应页码_毕业论文怎样自动生成目录及从任意页开始排页码
  5. 软件工程专业如何就业!
  6. 点焊机器人焊接超时_「技术帖」FSW点焊技术在车身铝薄板焊接中的应用
  7. ionic 幻灯指令 ion-slide-box
  8. Dreamweaver 8 jquery 代码提示
  9. 相关常用单位转换 mil 英里 英尺 .......
  10. 如何给三线表格(图片)添加标题?
  11. 最细致全面架设单机传奇教程
  12. 入库管理系统示例代码
  13. 多个并列的if条件句和if-elif的区别
  14. 解读SAP HANA轻量级应用服务器——XS引擎
  15. 物联网传感技术——电容式传感器
  16. 集思录REITs基金数据python爬取写入EXCEL表
  17. 医院机房建设A类机房建设标准和B类、C类机房建设标准有什么差别
  18. 岭南师范学院计算机证书,2017年岭南师范学院全国计算机等级考试网上报考通知第48次报考程序...
  19. 地平线征程5开发平台简介
  20. 403 Forbidden是什么意思?403 Forbidden错误解决方法

热门文章

  1. 炸裂!微信支付的架构太牛了!(微信跨平台开发框架)
  2. 4000字超干货!《统计学习方法》啃书指南
  3. 假如BERT系论文变成Commit History
  4. 【论文】Awesome Relation Extraction Paper(关系抽取)(PART III)
  5. 零基础轻松学python pdf 小码哥_零基础轻松学Python
  6. php结束外部程序,PHP执行外部程序的方法
  7. Leetcode每日一题:67.add-binary(二进制求和)
  8. Leetcode每日一题:44.wildcard-matching(通配符匹配)
  9. TensorFlow2.0:误差计算
  10. javascript基础-ajax