当前位置: 首页 > Linux

小型直升机!Nginx搭建静态资源服务器

时间:2023-04-06 05:46:21 Linux

今天来个小测试——使用Nginx搭建静态资源web服务器,把整个过程分享给大家。至于Nginx是什么?Nginx的安装和配置,就不多说了,废话不多说,直入正题。前期准备一个web静态资源(我用的是之前学过的webgl例子),先看下nginx的配置方法:先配置listen命令监听8000端口。然后配置一个location指令块,/表示所有请求,然后配置/后的路由必须和请求目录中的路径一致。这时候有两种使用方式,alias就是其中一种。listen:请求进入nginx之前,首先需要监听端口,这样nginx才能与客户端建立tcp连接。listen命令用于监听端口,在server命令块中。您可以通过侦听端口和地址来确定使用哪些服务器来处理请求。listen命令的值主要分为三种:address[:port]——监听一个地址或者添加对应的端口。比如listen127.0.0.1:8000port——监听一个端口。例如,listen8000unix:path——监听一个unix套接字地址,它只用于本地通信。比如unix:/var/run/nginx.sock然后使用命令reloadnginxnginx-sreload然后访问localhost:8000看效果root和alias:这两条指令的主要作用是将url映射到返回静态文件内容的文件路径。主要区别在于:root有一个默认值html,可以出现在http、server和location命令块中,会把完整的url映射到文件路径中。alias没有默认值,只能出现在location命令块中,并且只有location之后的url才会映射到文件路径。示例:location/root{roothtml}location/alias{aliashtml}当访问localhost/root/时,根据配置的命令值,在html后面加上/root,然后访问index.html。所以实际的访问路由地址是localhost/html/root/index.html。这是因为root将完整的url映射到文件路径。访问localhost/alias/时,访问的路由地址为localhost/html/index.html。使用gzip压缩减少网络传输访问大资源时,往往会消耗大量带宽,增加加载时间。Nginx可以设置静态资源的压缩功能。gzipon#表示打开gzip功能开关gzip_min_length1#表示gzip的最小压缩字节大小,如果文件很小,可以用tcp报文发送出去,压缩效果不是很好,但是它消耗CPU。(为了演示,我设置为1)gzip_comp_level2#表示压缩级别gzip_types#表示只压缩列出的类型,只压缩830kb,在响应头中也可以看到使用了gzip压缩使用autoindex使用autoindex可以将目录信息共享给用户,用户可以根据自己的需要打开对应的目录。文档中有介绍,访问/末尾的url时,会对应到这个目录,并显示这个目录的结构。使用方法是将autoindex设置为on。访问css/文件夹时:这里要提一下,会出现一些情况:开启autoindex后,仍然不会返回目录结构。可能是配置了index命令,index命令的优先级高于autoindex命令。具体如下:index:访问/时,会返回index命令的文件内容。index文件,默认值为index.html,可以出现在http、server和location指令块中。autoindex:当url以/结尾时,尝试以html/xml/json等格式返回指向root/alias中目录的目录结构。限制访问速度,因为公网带宽有限,当有多个用户同时访问,他们是一个加强关系。这时可能需要用户在访问一些大文件时限制访问速度,以保证其他用户有足够的带宽访问一些css、js等基础文件。这时候可以设置set命令配合一些内置变量来实现这个功能。例如设置$limit_rate1k;限制服务器向浏览器发送响应的速度。$limit_rate变量可以在官网ngx_http_core_module模块的EmbeddedVariables中使用。用法是在变量后面空格加一个数字,表示每秒传输多少字节。添加限制后,你会发现访问速度发生了变化。记录要显示的访问日志的内容,具体取决于要设置的格式。使用log_format指令定义日志的格式。log\_format格式允许设置一个名称,可以根据不同的目的以不同的格式记录日志文件。如图,设置名为main.log的日志格式。该格式使用了很多内置变量:$remote_addr:表示远程ip地址,即浏览器的ip地址$remote_user:表示用户名提供基本认证$time_local:表示访问时间$request:完整的原始请求line$status:表示响应状态$body_bytes_sent:发送给客户端的body字节数$http_referer:表示从哪里跳转$http_user_agent:用户浏览器的类型、版本、操作系统信息$http_x_forwarded_for:在客户端requestheader“X-Forwarded-For”设置了log_format后,需要设置日志记录。使用access_log指令。access_log所在的server块,意思是说这种请求的日志记录在access_log设置的地方;server{...access_loglogs/access.logmain;}表示本台服务器的请求记录在logs的access.log文件中,其中采用main记录格式。以上就是使用Nginx搭建静态WEB资源服务器的整个过程。它非常简单,但非常实用。内容摘自:https://blog.csdn.net/hugo233...