Nginx静态资源部署

Nginx静态资源部署


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

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

1、Nginx静态资源的配置指令

1.1 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;监听指定端口上的连接

1.2 default_server

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

server {
   
listen 8080;
server name 127.0.0.1;

如果访问的ip在 server中匹配不到比如192.168.24.62 (跟127.0.0.1不是等同的) ,则会默认找第一个sever
在这里插入图片描述
访问结果:
可以看到,用的是第一个sever
在这里插入图片描述

如果在listen 后面加上 default_server时,访问的ip 跟server都不匹配时,则会用 default_server

在这里插入图片描述

在这里插入图片描述

1.3 server_name 指令

server_name: 用来设置虚拟主机服务名称
127.0.0.1、localhost、域名[www.baidu.com | www.jd.com]

语法   server_name name1 name2....;name 可以提供多个,中间用空格分隔
默认值 server_name '';
位置 server

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

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

1.3.1 精确匹配

如:

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

补充小知识点:

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

修改 /etc/hosts文件的配置
在这里插入图片描述
因为域名是要收取一定费用的,所以我们可以使用修改hosts文件来制作一些虚拟域名来使用。需要修改/etc/hosts 文件添加
在这里插入图片描述
我们ping www.itcast.cn
可以看到对应的网址是 127.0.0.1
在这里插入图片描述
这种办法配置域名时,通常不实用。因为在浏览器访问时,通常我们只能先从本机hosts文件中去找,找不到再去DSN网站解析。当我们在本服务器的浏览器上访问该网址时,可以先找该hosts文件。当在别的电脑上访问该服务器时,不会去解析服务器的hosts文件的。

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

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

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

下面的配置就会报错

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

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

server_name 中可以使用正则表达式,并且使用 ~ 作为正则表达式字符串的开始标记。
常见的正则表达式
在这里插入图片描述
配置如下:

server {
   
listen 8
server_name ~^www\.(\w+)\.com$;
default_type  text/plain;
return 200 $1;
}

注意 ~后面不能加空格,加括号可以取值
$1 表示取第一个括号值,$2 表示第二个括号值

1.3.4 server_name匹配执行顺序

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

server {
   
listen 80;
server_name ~^www\.\w+\.com$;
return 200 'regex_success';
}

server {
   
listen 80;
server_name www.itheima.*;
return 200 'wilcard_after_success'
}

server {
   
listen 80;
server_name *.itheima.com
return 200 'wilcard_before_success'
}

server {
   
listen 80;
server_name www.itheima.com;
return 200 'exact_success'
}

server {
   
listen 80  default_server;
server_name _;
return 4 
Nginx是一个常用的Web服务器软件,可以用于提供静态资源,如图片、CSS和JavaScript文件等。当客户端请求一个不存在的静态资源时,Nginx会返回404错误,表示资源未找到。为了加强安全性,可以使用防火墙来限制对静态资源的访问。 在Nginx的配置文件中,可以使用location指令来定义对静态资源的访问规则。通过设置valid_referers参数,可以指定允许访问静态资源的referer(引用页)的白名单。例如,引用的配置中,只允许来自www.baidu.com、192.168.200.222、以example.com结尾的二级域名、以example开头的域名、以example.org结尾的域名和以.google.开头的域名的请求访问/images目录下的资源,其它referer的请求将被拒绝。 另外,可以使用root指令指定存放静态资源的根目录。例如,引用中的配置中,静态资源存放在/usr/local/nginx/html/images目录下。当客户端请求/images目录下的资源时,Nginx会在/usr/local/nginx/html目录下寻找相应的资源并返回给客户端。 综上所述,Nginx可以提供静态资源,并且可以通过合理的配置来实现404错误页面和防火墙功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [nginx静态资源配置](https://blog.csdn.net/weixin_53150440/article/details/127252730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Nginx静态资源部署](https://blog.csdn.net/weixin_56644618/article/details/127708238)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值