动态图片剪切
location ~/wx/storage/fetch/(.*) {
alias /root/storage/$1;
# access_log off;
# 图片默认宽度
set $width -;
# 图片默认高度
set $height -;
if ($arg_width != "") {
set $width $arg_width;
}
if ($arg_height != "") {
set $height $arg_height;
}
# 设置图片宽高
image_filter resize $width $height;
# 设置nginx读取图片最大buffer
image_filter_buffer 5M;
# 是否开启图片隔行扫描
image_filter_interlace on;
error_page 404 = error.gif;
}
代理并限流
http {
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1000r/s; #表示每秒最多处理x个请求,请求限制
# limit_conn_zone $binary_remote_addr zone=addr:10m; #对10m(16w个ip)来做限制,并发限制
limit_conn_log_level error; #默认
limit_conn_status 503; #默认
}
location /litemall/ {
limit_req zone=mylimit burst=1000 nodelay; #请求限制
# limit_conn addr 50; #并发限制
proxy_pass http://111.111.111.111:18080/;
add_header Access-Control-Allow-Origin *; #即接受所有跨域的请求
#获取用户真实ip
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
HTTP
http {
deny 192.168.66.88; #黑名单
keepalive_timeout 60; #不重新开启tcp通道时间
access_log off; #开启日志
log_format main '$remote_addr - $remote_user [$time_local] '
: '"$request" $status $bytes_sent '
: '"$http_referer" "$http_user_agent" "$request_time';
access_log /www/server/nginx/logs/nginx-access.log main;
}
重定向
重定向
if(!-e $request_filename) { #如果请求匹配不存在则重定向
rewrite ^ /index.html break;
last 本条规则匹配完成后继续向下匹配新的location URI规则
break 本条规则匹配完成后终止,不在匹配任何规则
}
访问控制
set $ip $remote_addr; #访问控制
if($ip='192.168.1.106') {
return 444 "test";
}
静态资源
静态文件
location /file/ {
alias D:/java/static/;
index autoindex on;
}
静态页面
location / {
root /java/static/dist/;
add_header Access-Control-Allow-Origin *; #即接受所有跨域的请求
}