Nginx配置静态web资源服务器
上一节,总结了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天
上一篇: 服务器动态资源请求
下一篇: LeetCode 字符串相乘(43题)
推荐阅读
-
静态页面上传到服务器后鼠标经过链接DIV就串(火狐正常IE串)_html/css_WEB-ITnose
-
CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
-
struts2配置静态资源代码详解
-
Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版
-
CentOS6.7使用nginx提供静态资源服务,反向代理和负载均衡
-
如何在(MAMP PRO for mac)中配置nginx上的伪静态规则?try_file的值?tp5之URL重写隐藏应用的入口文件index.php?
-
nginx 配置静态资源(图片)访问
-
「记录」关于 SpringBoot 版本配置拦截器方法 + 解决拦截静态资源 + 解决重定向
-
js,css,image...资源访问 博客分类: spring springMVC配置静态资源
-
js,css,image...资源访问 博客分类: spring springMVC配置静态资源