## 一、域名重定向
```
if ($host ~* !^www.) {
return 301 https://www.替换你的域名.com$request_uri;
break;
}
```
## 二、UA防盗链
>[danger] 对于个人或小型网站来说,我不希望国外蜘蛛来访问我的网站,特别是个别垃圾蜘蛛,它们访问特别频繁。这些垃圾流量多了之后,严重浪费服务器的带宽和资源。通过判断user agent,在nginx中禁用这些蜘蛛可以节省一些流量,也可以防止一些恶意的访问。
```
if ($http_user_agent ~* (Scrapy|Curl|HttpClient|Hacker|Creaker)) {
return 403;
}
```
## 三、Referer防盗链
>[danger] **背景说明**:为了避免他人获取服务器资源,只能让本服务器能正常访问服务器资源,使用refer做防止其他网站或直接获取服务器资源,在nginx中配置如下:
```
location ~ /uploads/mail/201 {
valid_referers blocked www.pinlucky.com www.pinlucky.cn;
#valid_referers blocked $server_name;
if ($invalid_referer) {
rewrite ^/ /static/img/openRedBG.png;
return 403;
}
#rewrite ^/ /static/img/openRedBG.png;
}
```
## 四、IP黑(白)名单
>[success] IP白名单
```
allow 1.1.1.1;
allow 1.1.1.2;
deny 1.1.2.0/24;
deny all;
```
>[success] IP黑名单
```
deny 1.1.1.2;
```
## 五、限速管理
```
limit_conn perip 5;
limit_rate 20k;
```
>[success] #上面这两个limit的意思是:单个IP最大允许5个连接,单个连接带宽为20K,若下载器一次可以发起5个请求(5个连接数),那么这个下载器最大下载速度为100K;
## 六、CC防攻击
> https://www.centos.bz/2012/12/openresty-nginx-block-cc-attack-deploy/
## 七、URL重写
`rewrite ^(.*)$ /index.php?s=$1 last;`
> PHP后缀改为html后缀(未测试)
`rewrite ^(.*)\.php(.*)$ /$1\.html$2 last;`
## 八、过滤请求
```
if ($request_method ~* GET|get) {
rewrite ^(.*)$ /notice last;
}
```
## 九、头部操作
> 添加响应头部,这样在浏览器的`Response Headers`就能看到客户端的IP了,注意放到location里面,还可能被其他location覆盖导致获取不到。
```nginx
add_header yourip $remote_addr;
```
> 添加请求头:
## 十、接收自定义头部
比如我们自定义header为X-Real-IP,通过nginx获取该header时需要这样:$http\_x\_real\_ip; (一律采用小写,而且前面多了个http\_)
```
curl http://127.0.0.1/nginx -H "A-B-C:a-B-c" -v
127.0.0.1 - a-B-c
```
```
location /nginx {
default_type text/html;
return 200 '$remote_addr - $http_a_b_c';
}
if ( $http_a_b_c != "abcdef00" ) {
return 403 '访问被禁止,访问该请求需要特定的头部';
}
```
- 文档目录
- 一、PHP笔记
- 安装及部署工具
- Oneinstack使用笔记
- LNMP使用笔记
- Composer使用笔记
- Composer包制作和应用
- Windows下的PHP
- Docker安装MySQL
- PHP知识汇总
- PHP8.0特性
- PHP杂项总结
- empty测试
- 阿里云SDK使用文档
- Swoole学习笔记
- PHP系统操作函数
- PHP系统探针
- PHPExcel导入导出数据
- PHP正则
- 数组函数
- Workerman小记
- trait
- 抽象类
- MVC设计模式
- PHP连接Access数据库
- guzzlehttp
- PHP加密方法
- PHP框架集合
- ThinkPHP
- YII
- Laravel使用笔记
- easyswoole
- TP5.1的正确使用方式
- ThinkPHP6.0队列
- PHP相关技术
- JWT
- 支付笔记
- PHP新写法
- PHP常用函数
- 二、运维笔记
- CentOS
- 常用命令
- 文件操作类
- 问题记录
- iptables
- 压缩解压命令
- CentOS8笔记
- Linux常用信息查看命令
- curl
- dig&nslookup
- 运维技术
- DNS体系
- CDN体系
- Haproxy负载均衡
- Ansible笔记
- crontab
- LVS简单理解
- 日志分析
- Python系统监控
- Linux系统监控
- 负载均衡方法
- Shell脚本示例
- ntp同步时间
- 宝塔运维
- Goaccess的使用
- Supervisor使用
- 用户管理
- RSA证书登录
- 网络技术
- DHCP
- IPv6学习
- 网络技术笔记
- 抓包笔记
- IPv4
- TCP
- IP基础知识总结
- IPv6地址库
- IPv6地址列表
- 云产品
- 对象存储大比拼
- 静态站点部署方案
- Apache配置总结
- Docker笔记
- 三、Web体系
- HTTP
- HTTP头字段总结
- head头部细讲
- 跨域请求
- HTTPS
- HTTP状态码表
- 关于IP的HTTP头部
- HTTP Method 详细解读
- HTTP的表单提交方式
- Vue
- Vue学习笔记
- ElementUI笔记
- Vue项目部署
- vue+layui
- vue-resource的使用
- axios的使用
- vue-element-admin
- Electron打包Vue
- Javascript
- JavaScript遍历json总结
- jQuery方法汇总
- WebSocket
- 案例:使用JavaScript获取用户内网IP地址
- JS导出Excel
- 前端笔记
- Viewer.js
- CSS笔记
- LayUI使用笔记
- 大屏系统
- 前端大屏系统
- 大屏预览
- 大屏HTML源码
- 常见Web攻击
- OAuth2.0
- 综合知识
- 四、数据库
- MySQL
- MySQL数据库备份
- MySQL用户管理
- JSON字段查询
- mysqldump导入导出数据库总结
- MySQL数据类型
- MySQL数据库案例总结
- MySQL8.0.11安装笔记
- Binlog笔记
- Navicat的使用
- MySQL常用内置函数
- Windows安装mysql8.0
- 存储过程
- 字符集
- MySQL主从复制
- PHPEnv一键安装MySQL
- Redis
- Redis笔记
- Redis在Windows的使用
- phpredis教程
- Redis事务
- redis集群
- Redis主从复制
- MongoDB
- MongoDb汇总
- 遇到问题
- 备份与还原
- 语法
- MongoDB安装
- Postgresql
- 安装
- PG笔记
- PG在ThinkPHP中使用
- PG数据库和MySQL数据库对比
- Elasticsearch
- 查询
- 数据格式
- 五、Nginx
- Nginx笔记
- 反向代理&负载均衡
- Nginx配置文件全面解析
- https/ssl配置
- 日志切割
- Openresty笔记
- 变量解释
- Tengine
- Nginx语法
- 文件服务器
- 六、其他语言
- Node.js
- Express
- 安装问题
- pm2的使用
- Python
- Tornado
- pip的使用
- Scrapy
- 多进程
- Python导出本地Excel
- Requests库
- Socket库
- Django
- 问题记录
- Python虚拟环境
- Fabric库
- Flask
- MongoDB的使用
- uwsgi部署
- Gunicorn部署
- Flask的虚拟环境
- Java
- JDK安装
- JSP页面
- JSP项目部署
- 学习计划
- Java学习记录
- Java相关状态码
- Jfinal笔记
- Websocket
- 客户端JavaScript
- Workman
- Swoole
- .NET
- WPF
- PowerShell
- 文件操作
- Interop.Excel
- DotNet笔记
- Go
- beego
- gin
- 备份MySQL数据库至OSS
- 对象存储比较更新
- 使用Go做一个静态文件服务器
- Ruby
- 七、杂项
- 其他笔记
- 义务劳动系统操作说明
- USB电流笔记
- Git使用笔记
- git常用命令列表
- git码云配置hook钩子实现自动部署
- 搭建git服务器
- 命令手册
- git钩子
- 自建Git服务器配置自动部署
- 算法汇总
- 时间复杂度和空间复杂度的简单讲解
- 加密算法
- 测试
- AB测试
- OFFICE
- Excel
- 数学笔记
- 对数
- 指数
- 三角函数
- 我用latex写公式
- 博客生成器
- markdown转html
- Jekyll
- Hugo
- 附:测试四大git-pages
- Hexo
- svn使用简记
- 正则表达式
- 草稿
- 个人成长篇
- 自创JS加密PHP解密程序
- 有趣的github项目
- 编辑器使用习惯
- 电脑选购指南
- 服务器重装备忘录