首页 / NGINX / nginx配置静态文件
nginx配置静态文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nginx配置静态文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3355字,纯文字阅读大概需要5分钟。
内容图文
![nginx配置静态文件](/upload/InfoBanner/zyjiaocheng/1333/3147ee79a4794bf5816de90efd538731.jpg)
一、背景
我们在使用nginx的时候会进行静态资源的配置,网上有很多方法,这里记录一下自己遇到的问题。
二、nginx下载与目录结构
下载nginx的服务器:下载地址,下载完成后解压一下就可以了。
核心目录结构如下
# 相同
1
. html文件夹
默认的文件,存放默认的html
2
.logs文件夹
记录错误和运行日志,这个可以进行排错
3
.conf文件夹
最为重要的文件,用于uri的配置
# 不同
# nginx.exe
Windows下的nginx启动目录
# sbin文件
Linux下的nginx启动目录
三、基础命令
列举一些常用的指令,在不同的语法上,运行的指令都差不多。
# windows下的
# 启动nginx
nginx start
# nginx重载
nginx -s reload
# nginx停止
nginx -s stop
# nginx退出
nginx -s quit
# linux下的(与前面一致)
./nginx
[
args
]
四、路由配置
4.1 location配置
4.1.1 路由配置含义
# 路由匹配前缀内容
=:精确匹配
^~:精确前缀匹配
~:区分大小写的正则匹配
~*:不区分大小写的正则匹配
/uri:普通前缀匹配
/:通用匹配
4.1.2 规则路由与请求uri
# 规则设置
location = / {
echo"规则A";
}
location = /login {
echo"规则B";
}
location ^~ /static/ {
echo"规则C";
}
location ^~ /static/files {
echo"规则X";
}
location ~ \.(gif|jpg|png|js|css)$ {
echo"规则D";
}
location ~* \.png$ {
echo"规则E";
}
location /img {
echo"规则Y";
}
location / {
echo"规则F";
}
# uri配置下的请求路由
请求uri 匹配路由规则
http://localhost/ 规则A
http://localhost/login 规则B
http://localhost/register 规则F
http://localhost/static/a.html 规则C
http://localhost/static/files/a.txt 规则X
http://localhost/a.png 规则D
http://localhost/a.PNG 规则E
http://localhost/img/a.gif 规则D
http://localhost/img/a.tiff 规则Y
4.1.3 路径选择
在进行配置的时候需要使用到一些路径的管理,这里包括两个方法root和alias,其中alias只能在location中使用,而root可以任意使用。其中root和alias的区别如下:
1. root
root的默认是html的根目录,把资源都放到html下基本不会出现问题,然后搜索的路径就是root和请求的路径一起作为搜索路径,这样就可以实现整个路由的访问和资源的获取。
# 请求公式
搜索路径=root+请求路径
# location配置
location \ {
root html;
}
# 请求路由
http:localhost/video/1.webm
# 搜索路径就是
root下的video文件夹下的1.webm资源
2. alias
alias会替换原来的路径,因此需要在最后添加反斜杠(\)这样来拼接路由,否则就会直接是请求的路由和alias连接在一起。这样的做法可以进行任意路径的匹配,尤其是在不使用默认的html目录文件作为映射资源的时候更为重要。
# 请求公式
搜索路由 = 配置路由
# location配置
location \ {
alias E:\\sources\\;
}
# 请求路由
http:localhost/video/1.webm
# 搜索路径
# 就是alias文件下的video文件夹中1.webm资源
E:\\sources\video/1.webm
4.2 实例
如我需要在nginx下使用video来进行视频数据的代理请求,就会访问下面这样的url,如果不将其放在默认的HTML下那么在url请求就会出现一些不合理的结果。
# 访问的url路由
http://localhost/video/1291543.webm
首先需要配置它的路由/video/
目录结构是video目录在这个文件目标文件下面,不在默认的html文件中。
使用root的配置情况如下,需要指定video所在文件的上级目录文件,而不是video文件本身所在的层级。
location /video/ { #指定视频、音频存放路径
alias E:\\web_server\\nginx-1.18.0\\;
autoindex on;
}
在video文件夹所在级目录就会出现,如果带上video的访问就会出现下面的问题,如果不带video文件访问就会出现和访问通配路由冲突的情况,或者在video的文件夹下面在嵌套一层video这都不合理。
CreateFile()"E:\web_server\nginx1.18.0\video/video/1291543.webm"
出现上述的情况,因为存在一个通配路由/,因此直接使用url匹配会出现定位会冲突或者无此路由规则,解决办法可以使用正则匹配高于一般的路由配置或者直接使用alias。
因此使用alias的配置如下
location /video/ { #指定视频、音频存放路径
alias E:\\web_server\\nginx-1.18.0\\video\\;
autoindex on;
}
这样就可以直接访问video下面的数据信息,如果还是访问不到就关闭所有的nginx进程重新启动。
4.3 其他配置
nginx的其他配置
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
sendfile on; #开启高效文件传输模式,
autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
gzip on; #开启gzip压缩输出
4.4 url访问
通过上述内容,最后设计的nginx代理内容如下,包括文件位置、路由设置、url如何访问
# 目录文件结构
video和nginx.exe目录同级
# nginx配置
# alias版本:
location /video/ { #指定视频、音频存放路径
alias E:\\web_server\\nginx-1.18.0\\video\\;
autoindex on;
}
# root版本
location /video/ { #指定视频、音频存放路径
root E:\\web_server\\nginx-1.18.0;
autoindex on;
}
# url访问
# 在video中添加这个视频资源就可以了
http://localhost/video/1291543.webm
五、总结
1.nginx的信息会记录在log文件中,可以查看运行记录来查看日志信息,以此查询出错原因。
2.可以通过结束进程重新启动nginx来更新数据,单纯的使用reload加载可能会出现一些问题,就是运行了多个进程。
参考
以下的博客有更加详细的记载。
原文:https://www.cnblogs.com/future-dream/p/14672365.html
内容总结
以上是互联网集市为您收集整理的nginx配置静态文件全部内容,希望文章能够帮你解决nginx配置静态文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。