环境
Ubuntu 16.04.7 LTS
Nginx 1.10.3
Mysql 5.7.33
PHP 7.0.33
安装LNMP环境
- 安装 nginx
1 | # 方式一:apt-get 安装 |
- 浏览器访问
- 修改 nginx 配置文件
1 | $ vim /etc/nginx/sites-available/default |
- 测试 nginx 配置文件是否正确
1 | $ nginx -t |
- nginx 常用命令
1 | # 方式一 |
- 安装 mysql
1 | $ apt-get install mysql-server mysql-client |
- 启动 mysql
1 | $ service mysql start |
- 安装 php
1 | $ apt-get install -y php7.0-fpm |
- 安装 php7.0-mysql 模块
1 | $ apt-get install php7.0-mysql |
- 启动 php7.0-fpm 服务
1 | $ service php7.0-fpm start |
- 验证 php 是否支持 mysql
1 | $ php -m | grep mysql |
Nginx配置文件详解
1 | # nginx的用户,因为PHP默认是以www-data用户运行的。 |
实现流量限制具体配置
- 修改 /etc/nginx/sites-available/default 配置文件
1 | location / { |
传输量限制为 3m,速率限制为 20k/s。
- 测试下载
1 | $ wget http://121.5.206.236/music.m4a |
在 nginx 访问根目录放入文件大小大于3m的文件,看到传输量大于设定值的部分会受到限制。
实现并发连接数限制的具体配置
- 修改 /etc/nginx/nginx.conf 配置文件
1 | http { |
- 修改 /etc/nginx/sites-available/default 配置文件
1 | location / { |
- 测试并发
访问控制配置
- 修改 /etc/nginx/sites-available/default 配置文件
1 | location / { |
- 测试访问
1 | # 创建访问文件 |
DDOS预防配置
- 修改 /etc/nginx/nginx.conf 配置文件
1 | http { |
- 修改 /etc/nginx/sites-available/default 配置文件
1 | location / { |
- ab 压力测试
1 | # 安装ab压测工具 |
- 查看错误日志
1 | $ tail /var/log/nginx/error.log |
可以看到,并发了10条请求,有4条访问失败。