前端必须掌握的 nginx 技能(3)
概述
作为一个前端,我觉得必须要学会使用 nginx 干下面几件事:
- 代理静态资源
- 设置反向代理(添加https)
- 设置缓存
- 设置 log
- 部署 smtp 服务
- 设置 redis 缓存(选)
下面我按照这个节奏一一研究一遍,把心得记录下来,供以后开发时参考,相信对其他人也有用。
设置缓存
缓存一般是设置在 location 块里面,示例代码如下:
events {
# worker_connections 1024; ## Default: 1024
}
http {
server {
listen 8767;
server_name 192.168.2.32;
location / {
deny 192.168.2.32;
root /Users/zhouyang/Documents/tencent/test/local-nginx;
expires 30s;
}
location /haha {
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
if ($invalid_referer = '') {
return 401;
}
}
location /baidu {
proxy_pass http://www.baidu.com;
}
location /yaya {
return 302 /baidu;
}
}
}
其中 expires 30s; 就是设置缓存为 30 秒。expire 指令的单位如下:
expires 30s; #30秒
expires 30m; #30分钟
expires 2h; #2个小时
expires 30d; #30天
如果不需要设置缓存,则改成如下代码:
expires -1s;
add_header Cache-Control no-cache;
通过浏览器查看请求的详细信息,我们可以看到:
// 设置缓存多了如下字段
Cache-Control: max-age=30
Expires: Fri, 27 Sep 2019 01:00:47 GMT
// 取消缓存多了如下字段
Cache-Control: no-cache;
Expires: Fri, 27 Sep 2019 00:57:40 GMT;
注意:在 vue 项目中,我们不建议对 html 设置缓存,但是我们建议对 js,css 文件设置缓存,因为我们打包的时候就已经加了 hash 了,所以即使文件变动,也会是新的文件名,不是老的文件名。我们可以利用 location 里面的 if 控制实现。
设置 Gzip 压缩
想要开启 Gzip 压缩,只需要加上如下代码即可:
gzip on; # 开启Gzip
gzip_min_length 1k; # 不压缩临界值,大于1K的才压缩
gzip_types text/plain text/css application/x-javascript application/javascript application/xml; # 哪些类型需要压缩
经过测试,上面这段 Gzip 的代码可以加在 http 指令块、server 指令块甚至 location 指令块里面。可以按各自的需求进行配置。
前端必须掌握的 nginx 技能(3)的更多相关文章
- 前端必须掌握的 nginx 技能(4)
概述 作为一个前端,我觉得必须要学会使用 nginx 干下面几件事: 代理静态资源 设置反向代理(添加https) 设置缓存 设置 log 部署 smtp 服务 设置 redis 缓存(选) 下面我按 ...
- 前端必须掌握的 nginx 技能(2)
概述 作为一个前端,我觉得必须要学会使用 nginx 干下面几件事: 代理静态资源 设置反向代理(添加https) 设置缓存 设置 log 部署 smtp 服务 设置 redis 缓存(选) 下面我按 ...
- 前端必须掌握的 nginx 技能(1)
概述 作为一个前端,我觉得必须要学会使用 nginx 干下面几件事: 代理静态资源 设置反向代理(添加https) 设置缓存 设置 log 部署 smtp 服务 设置 redis 缓存(选) 下面我按 ...
- [Linux] 一个前端必会的 Nginx 免费教程-在虚拟机中用deepin测试
原文技术胖的 nginx 技术胖 专注于前端开发 deepin Linux Deepin 是一个基于 DEB 包管理的一个独立操作系统,和那些 Ubuntu(下个大版本是基于 debian 开发) 的 ...
- 前端开发者必备的Nginx知识
摘要: 最常用的Web服务器 -- Nginx 原文:前端开发者必备的Nginx知识 作者:ConardLi Fundebug经授权转载,版权归原作者所有. Nginx在应用程序中的作用 解决跨域 请 ...
- 前端必须知道的 Nginx 知识
Nginx一直跟我们息息相关,它既可以作为Web 服务器,也可以作为负载均衡服务器,具备高性能.高并发连接等. 1.负载均衡 当一个应用单位时间内访问量激增,服务器的带宽及性能受到影响, 影响大到自身 ...
- 前端打包文件在nginx上403的解决办法
遇到的问题表现出来就是如题所述,因此作为题目. 我们知道,前端有很多方便的构建和打包工具,如webpack等,通常我们会把前端文件打包到dist目录下,部署到服务器上,如nginx等. 这次遇到的问题 ...
- 前端打包文件在 nginx 上 403 的解决办法
遇到的问题表现出来就是如题所述,因此作为题目. 我们知道,前端有很多方便的构建和打包工具,如 webpack 等,通常我们会把前端文件打包到dist目录下,部署到服务器上,如 nginx 等. 这次遇 ...
- 谁说前端不需要懂-Nginx反向代理与负载均衡
转:https://juejin.im/post/5b01336af265da0b8a67e5c9 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用 ...
随机推荐
- MongoDB系列(三):增删改查(CURD)
上篇讲了MongoDB的基础知识,大家应该对MongoDB有所了解了,当然真正用的还是curd操作,本篇为大家讲解MongoDB的curd操作. 1.数据库操作 #.增 use config #如果数 ...
- python、第一篇:初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- VSCode配合chrome浏览器调试cocos2d js项目
1.准备阶段 具备调试功能的VSCode(我的是在win10上,版本是1.17.1) 在VSCode里下载安装Debugger for Chrome扩展插件. 2.具体操作 创建一个cocosjs工程 ...
- 08Request
1.request对象和response对象的原理 1. request和response对象是由服务器创建的.我们来使用它们 2. request对象是来获取请求消息,response对象是来设置响 ...
- Kay and Snowflake CodeForces - 686D (树的重心性质)
After the piece of a devilish mirror hit the Kay's eye, he is no longer interested in the beauty of ...
- 第08课:【实战】Redis网络通信模块源码分析(1)
我们这里先研究redis-server端的网络通信模块.除去Redis本身的业务功能以外,Redis的网络通信模块实现思路和细节非常有代表性.由于网络通信模块的设计也是Linux C++后台开发一个很 ...
- STM32CubeIDE查看内存使用情况
按照下图操作 在右下角即可显示
- python fc21~fc29踩坑记录
最近在公司的linux fc21上安装python和anaconda, 直接mintmenu给挂掉了. 真是弱爆了. 后来,升级终于来了, 升到了fc29.好,再看看, python2.7还在, py ...
- 使用 Capistrano 部署总结
使用 Capistrano 部署总结 2014年6月27日 admin发表评论阅读评论 简介 Capistrano 是一个 Ruby 程序,它提供高级的工具集来部署你的 Web应用到服务器上.Capi ...
- Tarjan求点双连通分量
概述 在一个无向图中,若任意两点间至少存在两条“点不重复”的路径,则说这个图是点双连通的(简称双连通,biconnected) 在一个无向图中,点双连通的极大子图称为点双连通分量(简称双连通分量,Bi ...