Nginx静态资源配置

news2024/11/14 0:19:18

Nginx配置成系统服务

把Nginx应用服务设置成为系统服务,方便对Nginx服务的启动和停止等相关操作,具体实现步骤:

  1. /usr/lib/systemd/system目录下添加nginx.service,内容如下:
[Unit]
# Unit表明该服务的描述,类型描述
Description=nginx web service
Documentation=http://nginx.org/en/docs/
# 要求在network服务启动后再启动
After=network.target

[Service]
# 运行模式 simple|forking|oneshot|dbus|notify
Type=forking
# 存放PID文件的位置
PIDFile=/usr/local/nginx/logs/nginx.pid
# ExecStart被执行之前被执行
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
# 服务运行的具体执行命令
ExecStart=/usr/local/nginx/sbin/nginx
# 服务重启的执行命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 服务停止的执行命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=default.target
  1. 添加完成后如果权限有问题需要进行权限设置

chmod 755 /usr/lib/systemd/system/nginx.service

  1. 使用系统命令来操作Nginx服务.

启动: systemctl start nginx
停止: systemctl stop nginx
重启: systemctl restart nginx
重新加载配置文件: systemctl reload nginx
查看nginx状态: systemctl status nginx
开机启动: systemctl enable nginx

静态资源配置指令

设置请求资源的目录

  1. root:设置请求的根目录
    | 语法 | root path; |
    | — | — |
    | 默认值 | root html; |
    | 位置 | http、server、location |

path为Nginx服务器接收到请求以后查找资源的根目录路径。

  1. alias:用来更改location的URI
    | 语法 | alias path; |
    | — | — |
    | 默认值 | — |
    | 位置 | location |

path为修改后的根路径。
案例:
/usr/local/nginx/html目录下创建一个 images目录,并在目录下放入一张图片1.jpg图片
../html/
├── 50x.html
├── html
│ ├── 50x.html
│ └── index.html
├── images
│ └── 1.jpg
└── index.html

server {
    listen 8070;
    server_name 127.0.0.1;
    location /images {
        root /home/nginx/html;
    }
}
# 访问图片的路径为:http://172.41.100.15:8070/images/1.jpg
server {
  listen 8071;
  server_name localhost;
  location /images {
    #把root改为alias
    alias /home/nginx/html;
  }
	# 正确配置
  location /imagess {
    alias /home/nginx/html/images;
  }
}
# 访问http://172.41.100.15:8071/images/1.jpg 报404
# 正确访问图片的路径为:http://172.41.100.15:8071/imagess/1.jpg
  • root与alias的区别

root的处理结果是: root路径+location路径
/usr/local/nginx/html/images/1.jpg
alias的处理结果是: 使用alias路径替换location路径
/usr/local/nginx/html/1.jpg
如果location路径是以/结尾,则alias也必须是以/结尾,root没有要求
alias是一个目录别名的定义,root则是最上层目录的含义。
例如:

location /imagess/ {
    alias /home/nginx/html/images;
}
# 访问就会出问题,查看错误日志还是路径不对,所以需要把alias后面加上 /
2021/08/16 16:14:14 [error] 27736#0: *57 open() "/home/nginx/html/images1.jpg" failed (2: No such file or directory), 
client: 172.41.100.13, server: localhost, request: "GET /images1/1.jpg HTTP/1.1", host: "172.41.100.15:8071"

index指令

index:设置网站的默认首页

语法index file …;
默认值index index.html;
位置http、server、location

index后面可以跟多个设置,如果访问的时候没有指定具体访问的资源,则会依次进行查找,找到第一个为止。
案例:

location / {
    root /home/nginx/html;
    index index.html index.htm;
}

访问该location的时候,可以通过 http://ip:port/,地址后面如果不添加任何内容,则默认依次访问index.html和index.htm,找到第一个来进行返回

error_page指令

error_page:设置网站的错误页面

语法error_page code … [=[response]] uri;
默认值
位置http、server、location…

当出现对应的响应code后,如何来处理。
案例:

# 指定具体跳转的地址
server {
	error_page 404 http://www.baidu.com;
}

 # 指定重定向地址
server{
	error_page 404 /50x.html;
	error_page 500 502 503 504 /50x.html;
	location =/50x.html{
		root html;
	}
}

# location的@ 完成错误信息展示
server{
	error_page 404 @jump_to_error;
	location @jump_to_error {
		default_type text/plain;
		return 404 'Not Found Page...';
	}
}

# =[response]的作用是用来将相应代码更改为另外一个
server{
	error_page 404 =200 /50x.html;
	location =/50x.html{
		root html;
	}
}
#当返回404找不到对应的资源的时候,在浏览器上可以看到,最终返回的状态码是200
#编写error_page后面的内容,404后面需要加空格,200前面不能加空格

静态资源优化配置

Nginx对静态资源从三个属性配置进行优化:sendfile ontcp_nopush ontcp_nodeplay on

  • sendfile:用来开启高效的文件传输模式。
    | 语法 | sendfile on |off; |
    | — | — |
    | 默认值 | sendfile off; |
    | 位置 | http、server、location… |

请求静态资源的过程:

  1. 客户端通过网络接口向服务端发送请求.
  2. 操作系统将这些客户端的请求传递给服务器端应用程序.
  3. 服务器端应用程序会处理这些请求.
  4. 请求处理完成以后,操作系统还需要将处理得到的结果通过网络适配器传递回去。

在这里插入图片描述

例如:

server {
	listen 80;
	server_name localhost;
	location / {
		root html;
		index index.html;
	}
}
# 在html目录下有一个welcome.html页面,访问地址
http://172.41.100.15/welcome.html

未使用sendfile流程:
在这里插入图片描述

使用sendfile流程:
在这里插入图片描述

  • tcp_nopush:该指令必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输’效率’,相当于开启缓冲区
    | 语法 | tcp_nopush on|off; |
    | — | — |
    | 默认值 | tcp_nopush off; |
    | 位置 | http、server、location |

  • tcp_nodelay:该指令必须在keep-alive连接开启的情况下才生效,来提高网络包传输的’实时性’,即有数据立刻发送
    | 语法 | tcp_nodelay on|off; |
    | — | — |
    | 默认值 | tcp_nodelay on; |
    | 位置 | http、server、location |

sendfile可以开启高效的文件传输模式,tcp_nopush开启可以确保在发送到客户端之前数据缓冲区已经充分“填满”, 这大大减少了网络开销,并加快了文件发送的速度。 然后,当它到达最后一个可能因为没有“填满”而暂停的数据包时,Nginx会忽略tcp_nopush参数, 然后,tcp_nodelay强制套接字发送数据。由此可知,tcp_nopush可以与tcp_nodelay一起设置,它比单独配置tcp_nodelay具有更强的性能。

**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12624.html

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

相关文章

MQ(二)RabbitMQ快速入门

一、RabbitMQ 概述和安装 RabbitMQ 是基于 Erlang 语言开发的开源消息通信中间件 1. RabbitMQ的结构和概念 RabbitMQ中的几个概念: (1)channel:操作MQ的工具 (2)exchange:路由消息到队列中 &…

数据结构知识点补充

(67条消息) c语言怎么return ok,C语言中的 return与exit_哈哈哈可以的博客-CSDN博客 假如把i或i放入到for循环的函数体中,若没有变量或函数来接收其返回值,那么它们的作用效果也是相同的(67条消息) C语言的for循环中i和i的关系_肥嘟嘟的左卫门的博客-CSD…

1226:装箱问题 (贪心)

【题目描述】 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为11,22,33,44,55,66。这些产品通常使用一个66h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂…

爬虫工具-BeautifulSoup

BeautifulSoup: 1. 是一个高效的网页解析库,可以从HTML或者XML文件中提取数据 2. 支持不同的解析器,可以对HTML、XML等进行解析 3. 是一个敏感又方便的网页解析库,处理高效,支持多种解析器 4. 利用它在不编写正则表达式…

Unreal 和 Unity 3D 各有什么特点?如何选择?

一、两个引擎简述 Unreal Engine VS Unity Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的…

【设计模式】软件设计原则

1. 软件设计原则: 为了提高系统软件的可维护性、可复用性、可扩展性和灵活性 1.1 开闭原则: 对扩展开放,对修改关闭 (热插拔) 实现方式: 通过定义接口和实现类的方式实现开闭原则,我们再进行…

ASEMI代理艾赛斯IXTY02N50D-TRL车规级MOSFET

编辑-Z 艾赛斯车规级MOS管IXTY02N50D-TRL参数: 型号:IXTY02N50D-TRL 漏极-源极电压(VDS):500V 连续漏电流(ID):200mA 功耗(PD):25W 工作结温…

如何运营推特营销主账号

在推特上做产品推广,Twitter群(发)推王建议:一般需要两类账号。 主账号:也就是官方号,用来聚集粉丝,日常产品信息、新闻资讯发布的; 批量推广号:也叫小号或者广告号&am…

oracle数据库定义语言—DDL

文章目录1、数据定义语言2 创建表2.2 oracle 数据库中的表2.2.1 常见的数据字典表2.3 用查询创建表2.3.1 示例3 ALTER TABLE 语句3.1 添加一个新的列3.2 修改数据类型3.3 修改默认值3.4 修改列名3.5 删除一个列4、修改名称5、截断表6 、删除表(删除表以及表结构&…

《垃圾回收算法手册 自动内存管理的艺术》——引用计数与垃圾回收器的比较(笔记)

文章目录五、引用计数5.1 引用计数算法的优缺点5.2 提升效率5.3 延迟引用计数5.4 合并引用计数5.5 环状引用计数**步骤**5.6受限域引用计数六、垃圾回收器的比较6.1 吞吐量6.2 停顿时间6.3 内存空间6.4 回收器的实现6.5 自适应系统6.6 统一垃圾回收理论6.6.1 垃圾回收的抽象6.6…

神经网络在故障诊断中的应用

人工神经网络是近年来发展迅速,广泛地应用于各个领域,包括航天,自动控制,金融,电子,制造,医药等多个行业,已经有许多成功的先例,并展示了更为广阔的应用前景。基于神经网…

【区块链 | 智能合约】Ethereum源代码(8)- Ethereum服务和以太坊P2P协议发送广播源码分析

在“【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。 一、ethereum service的初始化和启动 func geth(c…

【MySQL数据库笔记 - 进阶篇】(二)索引

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:暂定 📝视频地址:黑马程序员 MySQL数据库入门到精通 📣专栏定位:这个专栏我将会整理 B 站黑马程序员的 MySQL…

day064:File类与I/O流、绝对路径与相对路径、File类的成员方法

目录 一、什么是File类、IO流 1.File类 2.I/O流 3.File类的构造方法 二、绝对路径与相对路径 三、File类的成员方法 1.File类的创建功能 (1)createNewFile() 创建空的文件 (2)mkdir() 创建单级文…

CY5.5(Cyanine5.5) azide, 10 mM/DMSO,花菁染料Cy5.5标记叠氮

产品名称:花菁染料Cy5.5标记叠氮 英文名称:CY5.5(Cyanine5.5) azide 该染料具有远红外/近红外发射,可用于NIR活体成像。Cyanine5.5可以取代Cy5.5、Alexa Fluor 680和DyLight 680。 CAS:2183440-52-8 分子式:C43H49ClN6O 分子量:701.36 …

简单工厂、工厂方法、抽象工厂、抽象工厂加简单工厂

简单工厂模式:简单工模式时类的创建模式,又叫做静态工厂方法(static Factory Method)。简单工厂模式是一个工厂对象决定创建出哪一种产品类的实例。它存在的目的很简单:定义一个创建对象的接口。简单工厂模式的最大优点…

Spring Boot之容器功能

目录 一.Spring 注入组件的注解 二.Configuration 1.代码演示 1.1JavaBean--》Monster.java 1.2配置类 1.3执行代码 2.Configuration 注意事项和细节 三.Import 1.创建两个JavaBean类 2.注入类 3.测试注解的使用 四.Conditional 1.Conditional 介绍 2.应用实例 …

攻防世界 看雪看雪看雪

看雪看雪看雪 题目附件里面给了张图 尝试文件拆解 无果 尝试放入winhex查找信息 无果 尝试放入stegsolve查找信息 无果 题目说雪 刚好有一种snow隐写的方法 但好像跟图片没有什么关系 后来发现存在ntfs流隐写 你解压之后也可以看到 这里我们使用7zip打开附件的压缩包…

【长难句分析精讲】同位语从句

分析技巧 形式: 抽象名词 that / whether形式: 具体名词 同位语(名词短语)如:成都,四川省会 练习一 一划二从三主 这里 and 不是关键词 苹果掉到地上而不是掉到树上这个事实,回答了他一直都…

【Jmeter基础篇】05:Linux服务器上部署并运行Jmeter脚本

配置之前请务必已安装JDK并配置好JDK的环境变量。 1. 上传压缩包到Linux服务器 使用FTP即可(最好是新建一个/usr/Application/Jmeter的文件夹,放进去。也可以使用自己喜欢的路径) # -p的作用是防止当上层文件夹不存在时报错。想体验的话可以…