nginx限制速率

刺骨的言语ヽ痛彻心扉 2023-09-27 21:59 273阅读 0赞

亲测

文章目录

  • 完整例子

完整例子

[root@racknerd-eae45e ~]# cat /etc/nginx/nginx.conf

  1. user root;
  2. worker_processes auto;
  3. error_log /var/log/nginx/error.log notice;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include /etc/nginx/mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12. '$status $body_bytes_sent "$http_referer" '
  13. '"$http_user_agent" "$http_x_forwarded_for"';
  14. access_log /var/log/nginx/access.log main;
  15. sendfile on;
  16. #tcp_nopush on;
  17. keepalive_timeout 65;
  18. #gzip on;
  19. # 限速IP白名单
  20. geo $limit {
  21. default 1;
  22. 10.0.0.0/8 0;
  23. 192.168.0.0/24 0;
  24. 172.20.0.35 0;
  25. }
  26. # 白名单不限速,非白名单按照客户端IP限速
  27. map $limit $limit_key {
  28. 0 "";
  29. 1 $binary_remote_addr;
  30. }
  31. limit_conn_zone $server_name zone=perserver:10m;
  32. limit_req_zone $server_name zone=perserverreq:10m rate=10r/m;
  33. limit_conn_zone $limit_key zone=perip:10m;
  34. limit_req_zone $limit_key zone=two:10m rate=3r/s;
  35. limit_req_zone $limit_key zone=one:10m rate=3r/s;
  36. include /etc/nginx/conf.d/*.conf;
  37. }

子文件

[root@racknerd-eae45e ~]# cat /etc/nginx/conf.d/default.conf

  1. server{
  2. listen 80;
  3. server_name chatgpt.daxiangyun.net;
  4. index index.php index.html index.htm;
  5. # 限制
  6. limit_req zone=one burst=3;
  7. # 限制每个网站每秒不超过10个请求,突发不超过10个请求。
  8. limit_req zone=perserverreq burst=10;
  9. # 限制每个网站最多接受100个请求
  10. limit_conn perserver 100;
  11. # 限制每个IP能够最多建立10个请求
  12. limit_conn perip 10;
  13. # 限制每个IP每秒不超过1个请求,突发不超过3个请求。
  14. # limit_req zone=one burst=3 nodelay;
  15. location / {
  16. proxy_pass http://127.0.0.1:8080; # 转发规则
  17. proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
  18. proxy_set_header X-Real-IP $remote_addr;
  19. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20. }
  21. }

发表评论

表情:
评论列表 (有 0 条评论,273人围观)

还没有评论,来说两句吧...

相关阅读