Nginx配置静态web资源服务器
阅读原文时间:2021年04月20日阅读:1

上一节,总结了Nginx的入门,这篇就是基础实战喽。

配置文件语法

在搭建静态web资源服务器时,需要先了解Nginx配置文件的语法规则。

一、配置文件由指令与指令块组成


上面的图片,展示的就是Nginx的配置文件。http就是指令块{},include是指令。http配置的指令块有http、server、location、upstream

二、每条指令都是以;结尾,指令与参数之间以空格符号分割
三、指令块以{}大括号将多条指令组织在一起
四、include语句允许组合多个配置文件以提高可维护性
五、使用#号添加注释,提高了可读性
六、使用$符号获取变量
七、部分指令的参数支持正则表达式

上面基本上就是Nginx的配置文件语法规则,这个就像使用Linux一样,只有长期练习和使用,才能熟记于心。

web资源服务器的搭建

要想搭建资源服务器,就需要一些静态的web页面作为资源。最近刚好在使用百度地图,所以就以百度地图为例子。

一、创建资源文件

在安装好的Nginx目录中,新建一个文件夹,我这里命名为code,然后将静态文件拷贝进去。

二、配置nginx.conf文件

找到Nginx目录下conf目录下的nginx.conf文件。将图片上标出的地方修改成自己想要配置的即可。因为Nginx默认是80端口,这里修改为8080端口,alias则是一个目录别名的定义,使用alias路径替换location路径。

下面就可以启动Nginx进行访问了,上一篇也介绍了Nginx如何启动,使用如下命令。

cd nginx目录
./sbin/nginx

然后在浏览器输入访问路径:ip + 端口 即可。如果你的code文件夹下,有html文件,Nginx会根据地址加载html文件。因为我的index.html文件是放在html文件夹下面的,所以,在访问路径上加了一个目录文件夹。

但是,出现一个问题,为什么访问别的资源文件,例如:js、css文件下的文件。却无法找到呢?

可以看到,显示的是403 Forbidden,没有权限访问此站。那么如何解决这个问题呢?
同样需要修改配置文件。只需要在location下加上下面的指令就行了。

autoindex on  # 打开目录浏览功能

改完之后需要重新载入配置文件。

./sbin/nginx -s reload

然后再使用ip + 端口号访问。就会看到文件目录了。

三、文件压缩


通过浏览器,可以看到此时传输的index.html文件是1.52kb。index.js文件是4.12kb。倘若一个页面中需要加载大量的js。那这页面加载速度一定很慢。客户体验感就很差。所以,Nginx提供了Gzip压缩。
要想使用Gzip也简单,只需要往http指令块中添加几个指令即可。

gzip on;  # 打开
gzip_min_length 1;  # 小于1字节,就不在压缩了
gzip_comp_level 2;  # 压缩级别
gzip_types text/plain application/x-javascript text/css application/xml application/javascript text/javascript applic  
ation/x-httpd-php image/jpeg image/gif image/png; 压缩类型


每一次修改nginx.conf都需要重新载入配置文件,然后重新访问。

图上可以看到,在传输的过程中,index.html文件被压缩至字节数,而index.js文件也明显减小了。同时在响应头中,(Content-Encoding)输出编码变成了Gzip

四、访问限速

当文件过大的时候,我们需要限制访问速度,以备足够的带宽来加载js/css。如果想这么做,只需要加下面的指令。

set $limit_rate 1k


限制每秒传输1k,重载配置文件。就能明显的感觉到网页加载的速度变慢了。原来加载js最多需要70毫秒。现在变成了2023毫秒。

五、日志记录

平时在开发中,经常通过日志来排查问题,当然,Nginx也是提供日志记录的。首先在配置文件中的server指令块中设置指令。

access_log  logs/qf.host.access.log  main;


注意,图中圈出的地方,main代表日志的格式。而这个格式定义在上面log_format,main相当于它的别名。在下面引用了这个格式,基本上,刚安装好的Nginx都是注释掉的,所以,把注释去掉就可以了。然后重载配置文件。
访问一下Nginx,然后去日志目录下查看是否有qf.host.access.log这个日志文件,这个名字根据自己定义。然后查看日志内容。

这个日志格式是可以自定义的。关于详细的使用方法,还需要查询相关资料。

想要辞职的第n天