​上一节我们介绍了nginx的三个使用场景和一些配置语法参数,今天我们就用一章的内容来介绍一下Nginx作为静态资源服务器的配置和常见问题。

一. 简单的静态服务器

​话不多说,直接上配置代码。

  server{
       listen    8080;
       server_name    localhost;
       location / {
      alias    /home/user/nginx/html/static_html/;
      index    index_static.html;
       }
  }

注:
  listen: 监听的端口号
  server_name: 域名
  location:配置的静态文件域
  /: 表示所有的请求
  alias:本地资源路径。(root可实现类似功能,两者的区别是root会将location /后的路径拼接到转换后的路径,alias则不会)
  index: 默认页,如果不配置此参数Nginx会找目录下的index.html index.htm作为默认页
小技巧:在配置Nginx时,可以在其他文件中写上诉的配置。并使用include 文件名的方式,将其他配置文件注入到nginx.conf中。nginx.conf是Nginx在启动或者reload时默认载入的配置文件,当然我们可以使用nginx命令 -c重新指定。

二. 压缩静态文件

​静态文件如html、css、js等有时候比较大,使用压缩可以很好的提升网络传输的性能。不过压缩需要占用服务器的cpu时间,是否启用压缩以及选择压缩率还是要视情况而定。

​命令:

​    ​gzip  on;

​    ​gzip_min_length 1024;

​    ​gzip_comp_level 2;

​    ​gzip_types test/plain application/x-javascript application/javascript text/css application/xml image/jpeg image/gif image/png;

​注解:

​    ​可配置到server中局部生效。也可以配置在server外 http中文件内生效。

​    ​gzip: on 启动压缩 off 关闭压缩

​    ​gzip_min_length: 需要压缩的最小字节数,小于此配置的文件将不会被压缩

​    ​gzip_comp_level: 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间。一般设置为1-      2,过高的设置压缩效果提升的不明显。

​    ​gzip_types: 需要压缩的文件类型

三. 设置成目录文件

有时候一个nginx服务就是为了用来下载文件的,例如prce官网的下载页面。这个在nginx中配置一个命令即可。

​命令:

auto_index    on;

注:如果server首页就要显示目录文件,应该将 index 配置的首页设置为不存在的文件。Nginx的处理流程中index模块要先与auto_index模块,如果index模块生效,auto_index模块将不会执行。

四. 设置大文件时的限速

为了避免用户请求大文件时将带宽占满,而对其他用户访问小文件产生影响,我们可以在nginx上进行配置,对文件的下载速度进行限速。

命令:

set $limit_rate 300k;

​注:$limit_rate是Nginx提供的参数变量,几乎所有Nginx模块都有变量,在官网文档中可以在相关模块的Embedded Variables中找到该模块提供的所有变量以及其用处。

​    ​    300k是设置的每秒请求文件大小

五. 设置日志文件

Nginx日志文件access.log可以记录每一次访问请求的相关数据,根据这些数据我们了解网站的整个运行情况。Nginx会默认开启日志模块功能,并允许我们对日志格式、文件路径做自定义的配置。

命令:

1. 设置日志格式规则

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

注:main是格式规则名,后边是日志的格式

2. 设置启用main格式规则

access_log  logs/host.access.log  main;

注:logs/host.accesss.log 是日志文件路径,main则表示启用规则名为main的日志

六. GoAccess

GoAccess是一款可视化监控access日志的组件,用起来非常简单,它会将access文件的内容解析成各种维度的图表,在生产环境经常会使用到它。

[Day2] Nginx静态文件的更多相关文章

  1. Nginx 静态文件服务

    Nginx 静态文件服务 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; ro ...

  2. nginx静态文件缓存的解决方案

    nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...

  3. 记一次vue2项目部署nginx静态文件404解决过程

    github上下的一个vue2的项目,运行可以的,webpack打包后,nginx请求报错: 发现路径很奇怪啊,所以果断来到build.js文件中看看是不是哪里不对. 已经一番引用查找: 发现在这里配 ...

  4. nginx静态文件访问404

    在http模块下加入下面的代码 server { listen 80; server_name 192.168.1.249; #本机ip #access_log logs/host.access.lo ...

  5. Nginx静态文件服务器配置方法

    在Java开发以及生产环境中,最常用的web应用服务器当属Tomcat,尽管这只猫也能够处理一些静态请求,例如图片.html.样式文件等,但是效率并不是那么尽人意.在生产环境中,我们一般使用Nginx ...

  6. nginx静态文件不设置缓存

    找到nginx安装目录下的nginx.conf文件,再nginx里面添加如下的内容 location / { add_header Cache-Control no-cache; add_header ...

  7. Nginx静态文件路径配置

    root目录与alias目录的区别 Nginx路径location配置中,使用root目录与alias目录的区别 1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接 ...

  8. 用Lua控制Nginx静态文件的url访问权限

    需求背景:比如我们有一个存储文件的web服务器,一般通过url可直接访问到:http://127.0.0.1/uploads/test.rar,如果我们需要限制别人的访问,可以通过添加lua脚本来控制 ...

  9. nginx静态文件缓存

    open_file_cache max=65535 inactive=30s; open_file_cache 打开缓存的同时也指定了缓存最大数目,以及缓存的时间 open_file_cache_va ...

随机推荐

  1. 响应式编程(Reactive Programming)(Rx)介绍

    很明显你是有兴趣学习这种被称作响应式编程的新技术才来看这篇文章的. 学习响应式编程是很困难的一个过程,特别是在缺乏优秀资料的前提下.刚开始学习时,我试过去找一些教程,并找到了为数不多的实用教程,但是它 ...

  2. 出现java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap错误问题解决

    首先出现这个问题,你应该是用了 BeanUtils.populate(meter,map); import org.apache.commons.beanutils.BeanUtils;并且导入了co ...

  3. git push到多个不同的远程仓库

    1.若现在本地有一个已经和github远程仓库关联好的本地仓库,平时都会将本地仓库push到github上. 2.有一天突然发现"码云"这个远程仓库网站,咦!这个还可以创建priv ...

  4. 第三周课堂笔记4thand5th

    循环打印 #计算字典中的键值对的个数 print(len(a)) #获取字典中键的列表 print(a.keys()) #获取字典中值的列表 print(a.values()) #获取字典中键值对的个 ...

  5. SPOJ694 New Distinct Substrings

    New Distinct Substrings 题目大意 给定一个字符串,求本质不同的子串个数 题解 SA常见思想:每一个子串都是某个后缀的前缀 考虑每一个后缀的贡献,首先他拥有n - sa[i]个( ...

  6. Android开发 使用SparseArray代替HashMap[转载]

    源作者:Android小Y链接:https://www.jianshu.com/p/1828f14d7955来源:简书 前言 Android开发中,一个好的应用,除了要有吸引人的功能和交互之外,在性能 ...

  7. MAC地址获取,有线网卡与无线网卡、物理网卡与虚拟网卡的区分

    获取当前活跃状态的网卡MAC地址.物理地址 Wmic命令:Win32_NetworkAdapter和Win32_NetworkAdapterConfiguration. 其中cmd命令行执行: 1. ...

  8. 几何+map套set——cf1163C

    能灵活用map+set的组合就能过这题了 /* 分成三个步骤来做: 1.通过点两两构造线 by=ax+c,先求a,b,再求c,用gcd(d,b)简化 2.线去重:用map+pair 3.统计交点 */ ...

  9. Joomla - 菜单系统 (从创建到前端页面显示的过程)

    在 Joomla 中,菜单是最常用且重要的功能之一,一般用于承载页面内容和各内容间的切换.导航等,演绎着非常重要的角色: 一.新建菜单 进入后台,点击顶栏菜单 -> 菜单管理 -> 点击新 ...

  10. day 42 01--CSS的引入方式及CSS选择器

    01--CSS的引入方式及CSS选择器   本节目录 一 CSS介绍 二 行内样式 三 内接样式 四 外接样式 五 CSS的选择器 六 CSS的高级选择器 七 CSS的属性选择器 八 CSS的伪类选择 ...