明天,来小试牛刀- 应用Nginx 搭建动态资源Web服务器,给大家分享一下全过程。

至于什么是Nginx?Nginx 装置、配置,这样就不再过多的赘述了,废话不多说,直奔主题。

后期筹备

筹备一个web动态资源(我用的是之前学习的webgl的例子),先来看看怎么配置nginx:

首先配置listen指令,监听8000端口。接着配置一个location指令块,/示意所有申请,而后配置/后的路由与申请目录下的门路要统一,这时有两种应用办法,alias是其中一种。

listen:申请进入nginx前,首先须要监听端口使得nginx与客户端建设一个tcp链接。listen指令就是用来监听端口的,处于server指令块内的。通过监听的端口与地址就能判断应用哪些server去解决申请。

listen指令值次要分为三种类型:

  • address[:port]-监听一个地址或者加相应的端口。比方listen 127.0.0.1:8000
  • port-监听一个端口。比方listen 8000
  • unix:path-监听一个unix socket地址,只用于本机通信。比方unix:/var/run/nginx.sock

而后应用命令重载nginxnginx -s reload,这时拜访localhost:8000就能看到成果了 root与alias:这两个指令次要性能都是将url映射为文件门路,以返回动态文件内容。次要的差异在于:

root有一个默认值html,能够呈现在http、server和location指令块内,并且会将残缺的url映射进文件门路中 alias没有默认值,只能呈现在location指令块中,并且只会将location后的url映射到文件门路 举例说明:

location /root {    root html}location /alias {    alias html  }

当拜访localhost/root/时,依据配置的指令值,会在html后加上/root再去拜访index.html。所以理论拜访的路由地址为localhost/html/root/index.html。这是因为root会将残缺的url映射进文件门路中。

而拜访localhost/alias/时,拜访的路由地址为localhost/html/index.html。

应用gzip压缩来缩小网络传输

当拜访的资源很大时,往往会耗费大量的宽带,也减少加载工夫。nginx能够设置动态资源的压缩性能。

gzip on#示意关上gzip性能开关gzip_min_length 1#示意gzip最小压缩字节大小,如果一个文件很小,在一个tcp报文就能发送进去,这时再进行压缩成果不太,却又耗费cpu。(我这是为了演示才设置为1)gzip_comp_level 2#示意压缩级别gzip_types#示意只对列出来的类型进行压缩

压缩后只有830kb,而且在响应头中也能看出应用了gzip压缩

应用autoindex

应用autoindex能够将一个目录信息分享给用户,用户依据本人需要关上对应目录。

在文档中介绍到,当拜访/结尾的url时,会对应到这个目录并展现这个目录的构造。应用办法就是把autoindex置为on 拜访css/这个文件夹时:

这里须要提出一点的是,会有一些状况:开启了autoindex后,还是不会返回目录构造。可能是因为配置index指令,index指令优先级会大于autoindex指令。具体如下:

index:当拜访/时会返回index指令的文件内容。index file,默认值是index.html,能够呈现在http、server和location指令块中。autoindex:当url以/结尾时,尝试以html/xml/json等格局返回root/alias中指向目录的目录构造

限度访问速度

因为公网带宽是无限的,当有许多用户同时拜访时,他们是一个加强关系。这时可能须要用户拜访一些大文件时限度访问速度,以确保能有足够的带宽使得其余用户可能拜访一些例如css,js等根底文件。这时能够设置set的命令配合一些内置变量来实现这一个性能。比如说

set $limit_rate 1k;

限度服务器向浏览器发送响应的速度。$limit_rate这个变量能够在官网的ngx_http_core_module模块中的Embedded Variables中

用法就是变量前面加上一个以空间为单位的数字,示意每秒传输多少字节。加上限度之后,会发现访问速度有变动。

记录access日志

日志要显示什么内容,就要看要设置什么样的格局。应用log_format指令定义日志的格局。

log\_format格局容许设置一个名字,这就能够对不同用处时记录不同格局的日志文件。如图所示,设置为名为main的日志格局。这个格局应用了很多内置变量:

$remote_addr:示意远端的ip地址,也就是浏览器的ip地址$remote_user:示意用户名提供根本身份验证$time_local:示意拜访工夫$request:残缺的原始申请行$status:示意响应状态$body_bytes_sent:发送给客户端的body字节数$http_referer:示意从哪跳转过来$http_user_agent:用户浏览器的类别,版本以及操作系统的一些信息$http_x_forwarded_for:客户端申请头中的"X-Forwarded-For"

设置完log_format之后,就要去设置日志记录的中央。应用access_log指令。

access_log所在哪个server块中,就示意这类申请的日志都记录在access_log设置的中央;

server {        ...        access_log logs/access.log main;} 

示意将这个server的申请记录在logs的access.log文件中,采纳main的记录格局

以上就是通应用Nginx来搭建一个动态WEB资源服务器的全过程,非常简单,然而,十分实用。

内容摘自:https://blog.csdn.net/hugo233...