jeudi 17 avril 2014

Comment limiter la vitesse de téléchargement par IP sur Nginx

Apprenez à limiter la vitesse de téléchargement par IP sur Nginx facilement. Vous pouvez maintenant de vitesse des gaz / bande passante sur le niveau IP dans Nginx quel nombre de connexions / demandes

Limiter la vitesse de téléchargement par IP sur Nginx - Vue d'ensemble

Auparavant nos serveurs dédiés étaient sur Apache. Nous avons eu le module CBAND sur Apache qui a pu limiter les utilisateurs téléchargent vitesse au niveau IP. Mais après la migration de serveur web Nginx, nous étions à la recherche d'alternatives de CBAND pour Nginx. Au début, nous ne pouvions pas trouver un moyen de limiter la vitesse sur base IP. Parce que le taux limite nginx par défaut ne pouvait pas l'objet serveur. il n'avait que deux options. Soit nous pourrions limiter les connexions qui font une adresse IP. Ou nous pourrions limiter chaque vitesse de connexion

Nous savons aujourd'hui gestionnaire de téléchargement faire beaucoup de connexions tout en téléchargeant un fichier. Donc, même si nous limitons le nombre de connexion qui aurait un impact de téléchargements de l'utilisateur. Nous avons donc dû trouver un moyen de limiter la vitesse de téléchargement de fichiers global de Nginx, indépendamment du nombre de connexions. Nos problèmes ont été résolus une fois que nous sommes arrivés à un module de Nginx écrite par Simon Lee sur GitHub qui pourrait facilement faire cette magie. J'ai écrit ce tutoriel pour les débutants qui ne peuvent pas installer ce module d'étranglement du trafic dans Nginx.

Des mesures pour limiter la vitesse de téléchargement par IP dans Nginx

Ci-dessous, étape par étape pour restreindre Nginx vitesse de téléchargement par IP. Si vous avez déjà installé nginx alors vous pouvez sauter les étapes initiales d'installations Nginx.

Étape # 1 Installation Pré-requis Avant de Nginx Source Compilation

Vous pouvez télécharger toutes les commandes de bouton du bas. Ne vous inquiétez pas si vous ne pouvez pas copier.
  sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev 

Étape # 2 Télécharger Nginx Source et le module Limiter Speed ​​IP

  cd / root / 
  mkdir src 
  cd src / 
  wget http://nginx.org/download/nginx-1.4.4.tar.gz 
  tar-xvzf nginx-1.4.4.tar.gz 
  wget https://github.com/bigplum/Nginx-limit-traffic-rate-module/archive/master.zip 
  master.zip décompression 

Étape # 3 Compiler Nginx Source et Chemin Configurer un module

  . / Configure - prefix = / opt / nginx - user = www-data - group = www-data - sans-http_scgi_module - sans-http_uwsgi_module - sans-http_fastcgi_module - add-module = / root / src / Nginx limite du trafic taux-module-maître - with-http_stub_status_module - with-file-aio 

Étape # 4 Installation Nginx

  faire 
  sudo make install 

Étape # 5 Modifier Init fichier à ajouter Nginx en service et de démarrage automatique au démarrage

Modifier fichier et coller le contenu ci-dessous: -
  vi / etc / init / nginx.conf 
  # Nginx
 description "démon nginx http"
 auteur "Philipp Klose <me@'thisdomain'.de>"

 commencer sur (système de fichiers et net-dispositif-up IFACE = lo)

 s'arrêter sur le niveau d'exécution [! 2345]

 env DAEMON = / opt / nginx / sbin / nginx
 env PID = / opt / nginx / logs / nginx.pid

 s'attendre fourche
 respawn
 limite de respawn 10 5
 # Oom jamais

 script de pré-départ
 $ DAEMON-t

 if [$?  -Ne 0]
    alors exit $?
 fi

 script de fin
 exec $ DAEMON 
Appuyez sur Echap et: wq pour écrire les modifications.

Étape # 6 Modifier la configuration nginx fichier pour limiter la vitesse par IP

Ajouter ci-dessous deux lignes dans la section http
  taux de limit_traffic_rate_zone $ remote_addr 500m;
 zone limit_conn_zone $ de binary_remote_addr = conn_limit_per_ip: 10m; 
Le chiffre en gras est la vitesse globale du serveur. Par exemple, si le serveur a 800 Mo vitesse de téléchargement au total alors l'éditer pour 800m. Puis, sous Serveur Section Ajoutez la ligne suivante. Cela permettra de limiter par IP. Vous pouvez sauter si vous ne voulez pas limiter les connexions par IP. Mais il est bon de prévenir l'attaque DDOS.
  limit_conn conn_limit_per_ip 56; 
Ajoutez alors le section Emplacement intérieur Section serveur comme exemple ci-dessous: Si vous voulez limiter la vitesse à 2 Mo par IP puis le modifier comme ci-dessous. Ou si vous voulez limiter la vitesse Nginx à 5 Mo par IP, puis changer à 5120K.
  lieu / directory_example / {
  limit_traffic_rate 2048k de taux;
  } 

Étape # 7 Redémarrage Nginx pour appliquer les modifications

Maintenant Enregistrer le fichier nginx.conf et redémarrer nginx avec les commandes ci-dessous.
  arrêt service de nginx 
  début service de nginx 
Faites-moi savoir si vous frappez les problèmes tout en étranglant vitesse par base IP dans Nginx

 

0 commentaires:

Enregistrer un commentaire