前端必须掌握的 nginx 技能(2)
概述
作为一个前端,我觉得必须要学会使用 nginx 干下面几件事:
- 代理静态资源
- 设置反向代理(添加https)
- 设置缓存
- 设置 log
- 部署 smtp 服务
- 设置 redis 缓存(选)
下面我按照这个节奏一一研究一遍,把心得记录下来,供以后开发时参考,相信对其他人也有用。
参考资料:
设置反向代理
为什么叫反向代理?因为一般的代理是代理客户端,而如果我们要代理服务器的话,就好像反向一样,所以叫反向代理。所以我们把代理服务器的代理都叫反向代理。
nginx 里面设置反向代理只需要使用 proxy_pass 指令就可以了。具体文档在这里 Module ngx_http_proxy_module。示例如下:
events {
# worker_connections 1024; ## Default: 1024
}
http {
server {
listen 8767;
server_name 192.168.2.32;
location / {
root /Users/zhouyang/Documents/tencent/test/local-nginx;
}
location /baidu {
proxy_pass http://www.baidu.com;
}
}
}
我们在 bash 执行如下命令,然后打开 192.168.2.32:8767/baidu 就会自动跳转到百度。(注意:这里的 192.168.2.32 要改成你自己的 ip 地址)。
nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx
设置跳转
1.根据 url 进行跳转。根据 url 进行跳转也很简单,代码改成如下即可:
events {
# worker_connections 1024; ## Default: 1024
}
http {
server {
listen 8767;
server_name 192.168.2.32;
location / {
root /Users/zhouyang/Documents/tencent/test/local-nginx;
}
location /baidu {
proxy_pass http://www.baidu.com;
}
location /yaya {
return 302 /baidu;
}
}
}
我们在 bash 执行如下命令,然后打开 192.168.2.32:8767/yaya ,就会自动跳转到 192.168.2.32:8767/yaya ,最后自动跳转到百度。(注意:这里的 192.168.2.32 要改成你自己的 ip 地址)。
nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx
2.根据 referer 进行跳转。根据 url 进行跳转也很简单,代码改成如下即可。具体文档在这里 Module ngx_http_referer_module。
events {
# worker_connections 1024; ## Default: 1024
}
http {
server {
listen 8767;
server_name 192.168.2.32;
location / {
root /Users/zhouyang/Documents/tencent/test/local-nginx;
}
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;
}
}
}
我们在 bash 执行如下命令,然后打开 192.168.2.32:8767/haha ,就会看到 401 禁止访问了。(注意:这里的 192.168.2.32 要改成你自己的 ip 地址)。
注意:nginx 会根据 valid_referers 列出的进行匹配,如果匹配上则会自动赋值内部变量 $invalid_referer 为空字符串,如果没有匹配上则会自动赋值为字符串 '1'。
nginx -s quit // 优雅退出
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf // 使用指令目录下的配置文件启动 nginx
根据 ip 地址控制访问
我们还可以根据 ip 地址控制访问,禁止某一些 ip 访问。示例如下:
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;
}
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;
}
}
}
上面我们禁止了 192.168.2.32 访问 192.168.2.32:8767,但是由于 nginx 的匹配机制,访问其它路由还是可以的。
负载均衡
我们还可以做负载均衡,具体文档在这里 Module ngx_http_upstream_module。
我没有深入研究,想深入研究的话可以看文档和查资料。
添加 https
由于我还在申请 aws ec2,所以等申请完毕之后再回来补充。
前端必须掌握的 nginx 技能(2)的更多相关文章
- 前端必须掌握的 nginx 技能(4)
概述 作为一个前端,我觉得必须要学会使用 nginx 干下面几件事: 代理静态资源 设置反向代理(添加https) 设置缓存 设置 log 部署 smtp 服务 设置 redis 缓存(选) 下面我按 ...
- 前端必须掌握的 nginx 技能(3)
概述 作为一个前端,我觉得必须要学会使用 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 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用 ...
随机推荐
- 软件测试 基础 (三) (web 页面常见功能测试)
web 页面中 四种常见 必测控件 输入框 1.为空 (如果不为空,页面有“*”号标注,或者只有一个输入框) a.没有任何输入,焦点离开有提示,提交页面无跳转 仍有提示 b.输入一个或多个空格,焦点离 ...
- springmvc框架中的核心对象DispatcherServlet
SpringMVC是Spring中的模块,它实现了mvc设计模式,首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映 ...
- .htaccess 一段神奇的跳转代码
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|you ...
- Highcharts基本名词解释
1.Highcharts基本组成: 2.名词解释 lang 语言文字对象 所有Highcharts文字相关的设置 chart 图表 图表区.图形区和通用图表配置选项 colors 颜色 图表数据列颜色 ...
- java 学习笔记(四) java连接ZooKeeper
public class Demo2 { public static void main(String[] args) { String connectString = "192.168.1 ...
- STM32CUBE+KEIL+Compiler V6使用方法
可以参考:https://blog.csdn.net/PeterSun01/article/details/90445439https://www.jianshu.com/p/18a58fee94ce ...
- qt5--自定义控件封装
视频教程地址:https://www.bilibili.com/video/av51766541/?p=30
- 未能从程序集“netstandard, Version=2.0.0.0......”中加载类型“...”。
需要在机器上安装:4.7.1的framework 下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=56116 说明:n ...
- 从入门到精通,Java学习路线导航(附学习资源)
原文链接:https://blog.csdn.net/qq_42453117/article/details/100655512 引言 最近也有很多人来向我"请教",他们大都是一些 ...
- week5 作业
week5 作业 1.描述GPT是什么,应该怎么使用? 描述GPT之前要简单了解MBR分区,MBR(Main Boot Record)叫做主引导记录,其位于磁盘的最前端,由一段代码组成,共占用512个 ...