一、在本地模拟正式环境
1、首先配置好本地的host
文件路径为C:\Windows\System32\drivers\etc
在host文件中添加
2、nginx服务配置
3、配置完成 访问 http://www.djz.com/img/login.jpg
显示如下就成功了
二、限制ip的两种方法
1、第一种方法
a.配置
server {
listen 80;
server_name www.djz.com;
allow 127.0.0.0/8;
deny all;
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
root D:/;#指定图片存放路径
}
}
b.访问
http://www.djz.com/img/login.jpg
符合 allow 127.0.0.0/8 8是掩码
正常访问
修改配置
server {
listen 80;
server_name www.djz.com;
allow 129.0.0.0/8;
deny all;
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
root D:/;#指定图片存放路径
}
}
b.访问
http://www.djz.com/img/login.jpg
不符合 allow 129.0.0.0/8 8是掩码
访问被限制
第一种方法基本完成限制配置
1、第二种方法
a.配置
server {
listen 80;
server_name www.djz.com;
set $flag 0; #设置变量
if ($remote_addr !~* ^(127|123)\.){
set $flag "${flag}1";#符合条件赋值
}
if ($request_uri !~* "/static/warnning.html"){
set $flag "${flag}2";#符合条件赋值
}
if ($flag = "012"){#符合条件
return 301 /static/warnning.html;
}
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
root D:/;#指定图片存放路径
}
}
b.访问
http://www.djz.com/img/login.jpg
正常访问
修改配置
server {
listen 80;
server_name www.djz.com;
set $flag 0; #设置变量
if ($remote_addr !~* ^(129|123)\.){
set $flag "${flag}1";#符合条件赋值
}
if ($request_uri !~* "/static/warnning.html"){
set $flag "${flag}2";#符合条件赋值
}
if ($flag = "012"){#符合条件
return 301 /static/warnning.html;
}
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
root D:/;#指定图片存放路径
}
}
b.访问
http://www./img/login.jpg
问被限制并跳转到自定义的页面
第二种方法基本完成限制配置
三、并发量与连接数据的配置如下
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
client_max_body_size 200m;
#gzip on;
limit_conn_zone $server_name zone=conn:10m;
#定义一个名为conn的limit_conn_zone用来存储session,
#大小是10M内存,1M能存储16000个状态;$binary_remote_addr是限制同一客户端ip#地址;
#$server_name是限制同一server最大并发数;
limit_req_zone $binary_remote_addr zone=allips:10m rate=200r/s;
#定义一个名为allips的limit_req_zone用来存储session,
#大小是10M内存,1M能存储16000个状态,以$binary_remote_addr为key,限制平均#每秒的请求为20个,
#rate的值必须为整数,如果限制两秒钟一个请求,可以设置成30r/m
server {
listen 80;
server_name www.djz.com;
#allow 129.0.0.0/8;
#deny all;
set $flag 0; #设置变量
if ($remote_addr !~* ^(129|123)\.){
set $flag "${flag}1";#符合条件赋值
}
if ($request_uri !~* "/static/warnning.html"){
set $flag "${flag}2";#符合条件赋值
}
if ($flag = "012"){#符合条件
return 301 /static/warnning.html;
}
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
limit_conn conn 2000;#limit_conn为限制并发连接数
limit_req zone=allips burst=20 nodelay; #限制每ip每秒不超过20个请#求,漏桶数burst为5,
#brust的意思是,如果第1秒、2,3,4秒请求为19个,第5秒的请#求为25个是被允许的。
#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错#误。nodelay,
#如果不设置该选项,严格使用平均速率限制请求数,第1秒25个请#求时,
#5个请求放到第2秒执行,设置nodelay,25个请求将在第1秒执行
root D:/;#指定图片存放路径
}
location ~ ^/static{
root D:/nginx-1.15.7/html/;#指定图片存放路径
}
}
server {
listen 80;
server_name www.djz.com;
location ~ ^/img.*\.(gif|jpg|jpeg|png|html|js|css|map)$ {
root D:/;#指定图片存放路径
}
}
server {
listen 8000;
server_name 127.0.0.1;
location / {
root html;
index index.html index.htm;
}
location ~ ^/static{
root D:/nginx-1.15.7/html/;#指定图片存放路径
}
}
}
基本配置完成
最后有兴趣可以前往我博客下载资源
https://download.csdn.net/download/qq_34665176/10945094