欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx配置静态web资源服务器

程序员文章站 2022-07-15 11:16:00
...

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

配置文件语法

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

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

Nginx配置静态web资源服务器
上面的图片,展示的就是Nginx的配置文件。http就是指令块{},include是指令。http配置的指令块有http、server、location、upstream

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

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

web资源服务器的搭建

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

一、创建资源文件

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

二、配置nginx.conf文件

找到Nginx目录下conf目录下的nginx.conf文件。将图片上标出的地方修改成自己想要配置的即可。因为Nginx默认是80端口,这里修改为8080端口,alias则是一个目录别名的定义,使用alias路径替换location路径。
Nginx配置静态web资源服务器
下面就可以启动Nginx进行访问了,上一篇也介绍了Nginx如何启动,使用如下命令。

cd nginx目录
./sbin/nginx

然后在浏览器输入访问路径:ip + 端口 即可。如果你的code文件夹下,有html文件,Nginx会根据地址加载html文件。因为我的index.html文件是放在html文件夹下面的,所以,在访问路径上加了一个目录文件夹。
Nginx配置静态web资源服务器
但是,出现一个问题,为什么访问别的资源文件,例如:js、css文件下的文件。却无法找到呢?
Nginx配置静态web资源服务器
可以看到,显示的是403 Forbidden,没有权限访问此站。那么如何解决这个问题呢?
同样需要修改配置文件。只需要在location下加上下面的指令就行了。

autoindex on  # 打开目录浏览功能

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

./sbin/nginx -s reload

然后再使用ip + 端口号访问。就会看到文件目录了。
Nginx配置静态web资源服务器

三、文件压缩

Nginx配置静态web资源服务器
通过浏览器,可以看到此时传输的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配置静态web资源服务器
每一次修改nginx.conf都需要重新载入配置文件,然后重新访问。
Nginx配置静态web资源服务器
图上可以看到,在传输的过程中,index.html文件被压缩至字节数,而index.js文件也明显减小了。同时在响应头中,(Content-Encoding)输出编码变成了Gzip

四、访问限速

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

set $limit_rate 1k

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

五、日志记录

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

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

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

想要辞职的第n天