【NGINX入门】2.Nginx搭建静态资源web服务器

【NGINX入门】2.Nginx搭建静态资源web服务器,第1张

本文讲解Nginx安装后,nginx搭建静态资源web服务器需要的配置内容包括location,gzip,带宽限速等配置。

添加上图中的配置后, 客户端访问 http://172.16.204.5:90/ 时, 会以树的格式展示mine_html中的所有文件. 使用这种方式可以很好的共享静态资源.

(1)Nginx系列教程(2)nginx搭建静态资源web服务器

https://yq.aliyun.com/articles/752950

web服务器重要的的任务之一就是服务静态资源文件,比如网站的图片,还有一些静态的HTML页面,本文的例子还是来自于Nginx官网。在这个用例中我们要配置两个静态资源路径,来处理外部的静态资源请求。我们会更改配置文件中,server块下http下的location。

首先需要创建/data/www目录,然后将index.html文件,文件的内容并不重要,本例只是指引我们观察nginx如何找到和发送静态资源。然后在创建一个/data/images目录,并放置一些图片文件。

下一步打开配置文件,默认的配置文件中已经包含了一些server块,大多数已经注释掉了,官网让我们把server块都注释掉,重写写一个新的空的server块,但注意,一定不要将http注释掉,nginx通过识别它才能知道我们需要处理的是http请求。

通常,配置文件可能会包含多个server块,这些server块可以由端口号区分,也可以由server names来区分。当nginx决定由哪一个server去处理请求的时候,nginx会根据server块中location参数去测试请求头中指定的URI

现在在server块中添加location块

该location块指定了URI请求的根目录前缀,"/"。对于请求来讲,URI被添加在root路径具体指向的目标路径,如果存在的多个匹配的位置块,nginx将选择前缀最长的位置块(可能是因为更加具体)。上方的location块提供的已经是最短前缀了,也就是说,server块中所有的location块如果都没有匹配到,则该location块将会被采用。

官网的说法真的非常绕,我觉得思路就是, nginx首先会优先去具体的location块匹配资源(规则是参数越长,越优先查找),如果都查不到就去根路径查。

我们再加一个location块

这个location块会匹配以/images/开始的请求,但上一个(location块 location / 也会匹配该内容,记得吗,Nginx会先匹配长路径location块)

现在为了看的更加清楚,在加过这两部分内容之后的配置文件应该长这样

重新加载nginx之后,配置会更新,使用:

现在该配置文件已经生效了,配置在监听80端口的本地服务器上,我们可以在本地访问 http://localhost/ ,在此之后例如 http://localhost/images/example.png 这样的请求, Nginx会映射到location /images/去,如果请求的资源不存在,Nginx将返回404页面,404页面是可以定制的,一般企业也会定制属于自己的404页面。

后续的内容我还打算针对一些常见场景,记录以下nginx的配置文件针对不同场景和需求该如何去写,以及为什么这么写。Nginx一些模块的详细介绍不打算专门写,大家如果有需求可以看官方文档。

http://nginx.org/en/docs/beginners_guide.html#conf_structure

如果你安装了node,那么http-server就是个不错的选择,只需要一行命令就可以快速启动。

安装:

npm install -g http-server

在项目根目录执行:

http-server -a 127.0.0.1 -p 8000

使用static-server

static-server很类似http-server,也是基于node,安装和使用方法很相似:

npm install -g static-server

使用时只需要在项目目录下指定该项目的入口文件即可:

static-server -i index.html

下面是一些常用的选项:

-p, --port

详见:https://www.npmjs.com/package/static-server

使用Python

如果你安装了Python,那这个方法可能最简便了,只需要在该目录下执行命令:

python -m SimpleHTTPServer

这样就启动了一个静态web服务器,此时项目的根目录为执行命令时所在目录,默认端口是8000,如果需要指定端口,则加上端口号启动:

python -m SimpleHTTPServer 8080

使用Ruby

如果你安装Ruby,Ruby也提供了一个很简便的方式


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/528627.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-23
下一篇2023-06-23

发表评论

登录后才能评论

评论列表(0条)

    保存