IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Quelles sont les possibilités pour désactiver un balancer member à distance ?


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut Quelles sont les possibilités pour désactiver un balancer member à distance ?
    Bonjour,

    Je souhaiterais donner la possibilité à un fournisseur de pouvoir activer et désactiver les balancer member à sa convenance pour pouvoir effectuer les mises à jour des applications de manière autonome.
    Il existe le balance manager mais quand on a plusieurs web serveurs c'est une grosse gestion enfin il me semble, je le configure peut être mal ... ,

    Sur le web server 1, je dois configurer un balancer manager01
    Sur le web server 2, je dois configurer un balancer manager02
    ...
    personne n'a une idée de script ...

    Merci pour votre aide ;-)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Sur un serveur, ça fonctionne mais pour le deuxième, ça ne me donne pas un résultat correct à chaque fois ? Vous utilisez des scripts ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Comment faites-vous les maintenances de vos applicatifs en clustering lorsque votre webserver est Apache afin de ne pas créer d'interruptions lors des maintenances ?

  4. #4
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 117
    Points : 187
    Points
    187
    Par défaut
    Salut Norten,

    Je vois que tu es en peine, alors je me suis penché sur ton problème
    J'ai peut-être une idée. Mais je te préviens, j'ai rien testé.

    Hypothèses de départ:
    - Tu as un fichier de configuration principal pour apache, nommé ici httpd.conf
    - Tu as ta configuration de load-balancing dans un fichier à part, nommé ici httpd-load-balance.conf
    - Tu inclus la configuration du load-balancer à la conf principale comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Include httpd-load-balance.conf
    Idée =
    On créer plusieurs fichiers de configuration pour ton load-balancing:
    - Un fichier avec la configuration normale, nommé ici httpd-load-balance-full.conf
    - Un fichier avec comme parametrage, QUE le serveur 1, nommé ici httpd-load-balance-serv1.conf
    - Un fichier avec comme parametrage, QUE le serveur 2, nommé ici httpd-load-balance-serv2.conf

    La bascule d'une configuration à l'autre se fait via un renommage du fichier de configuration du load-balancing ET un gracefull sur ton processus apache
    Tu point de vu de ton Apache et de ta configuration principale, on aura toujours les mêmes noms de fichiers (a savoir httpd.conf et httpd-load-balance.conf ). Sauf que le contenu de ton fichier httpd-load-balance.conf lui changera. C'est ça l'astuce


    Exemple des fichiers de configuration
    # httpd-load-balance-full.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <VirtualHost *:80>
            ProxyRequests off
     
            ServerName domain.com
     
            <Proxy balancer://mycluster>
                    BalancerMember http://myserver1:80 route=serv1 loadfactor=1 status=+h
                    BalancerMember http://myserver2:80 route=serv2 loadfactor=1 status=+h
     
                    Require all granted
     
                    ProxySet lbmethod=byrequests
    		ProxySet stickysession=SESSION_ID
            </Proxy>
     
            <Location /balancer-manager>
                    SetHandler balancer-manager
                    Require host example.org
    		# or Require valid-user
            </Location>
     
     
            ProxyPass /balancer-manager !
            ProxyPass / balancer://mycluster/
     
    	ProxyPassReverse / balancer://mycluster
     
    </VirtualHost>
    ###
    # httpd-load-balance-serv1.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <VirtualHost *:80>
            ProxyRequests off
     
            ServerName domain.com
     
            <Proxy balancer://mycluster>
                    BalancerMember http://myserver1:80 route=serv1 loadfactor=1 status=+h
                    #BalancerMember http://myserver2:80 route=serv2 loadfactor=1 status=+h
     
                    Require all granted
     
                    ProxySet lbmethod=byrequests
    		ProxySet stickysession=SESSION_ID
            </Proxy>
     
            <Location /balancer-manager>
                    SetHandler balancer-manager
                    Require host example.org
    		# or Require valid-user
            </Location>
     
     
            ProxyPass /balancer-manager !
            ProxyPass / balancer://mycluster/
     
    	ProxyPassReverse / balancer://mycluster
     
    </VirtualHost>
    ####
    # httpd-load-balance-serv2.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <VirtualHost *:80>
            ProxyRequests off
     
            ServerName domain.com
     
            <Proxy balancer://mycluster>
                    #BalancerMember http://myserver1:80 route=serv1 loadfactor=1 status=+h
                    BalancerMember http://myserver2:80 route=serv2 loadfactor=1 status=+h
     
                    Require all granted
     
                    ProxySet lbmethod=byrequests
    		ProxySet stickysession=SESSION_ID
            </Proxy>
     
            <Location /balancer-manager>
                    SetHandler balancer-manager
                    Require host example.org
    		# or Require valid-user
            </Location>
     
            ProxyPass /balancer-manager !
            ProxyPass / balancer://mycluster/
     
    	ProxyPassReverse / balancer://mycluster
     
    </VirtualHost>
    ############################################################################

    En cadeau de Noel, je t'ai fait un petit script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    #!/bin/bash
     
    # Author = Silfun1
    # Created on 20/11/2016
    # Last modify on 20/11/2016
    # Version 1
    # Script created by the tool UsiScript (http://www.usiscript.com/)
    # http://www.usiscript.com/index.php?thescriptname=anonymous/88.190.10.29-20161120020333-1249849286.sh7
     
     
    usage ()
    {
    	echo "Usage: $(basename $0) -c <servername> (or -c full) 
    	echo ""
        echo "-c servername : put the loadbalancing configuration that redirect all the traffic to that server"
    	echo "-c full : put the normal configuration"
    	echo ""
     
    	exit 1
    }
     
    TODAYDATE=`date +%d%m%Y`
    VarAPACHEDIRCONF="/etc/httpd/"
    VarAPACHECONF="httpd.conf"
    VarCONF_LOADBALANCE="httpd-load-balance.conf"
    VarCONF_LBFULL="httpd-load-balance-full.conf"
     
    #We check if the directory $VarAPACHEDIRCONF exist
    if [ -d $VarAPACHEDIRCONF ]; then
    	cd $VarAPACHEDIRCONF
    else
    	echo "! The folder $VarAPACHEDIRCONF doesn't exist."
        exit 1
    fi
    # We check if the file $VarAPACHECONF exist
    if [ ! -f $VarAPACHECONF ]; then
    	echo "! The file $VarAPACHECONF doesn't exist."
        exit 1
    fi
    if [ ! -f $VarCONF_LOADBALANCE ]; then
    	echo "! The file $VarCONF_LOADBALANCE doesn't exist."
        exit 1
    fi
    if [ ! -f $VarCONF_LBFULL ]; then
    	echo "! The file $VarCONF_LBFULL doesn't exist."
        exit 1
    fi
     
    #Check the arguments given.
    while getopts "hc:" opt
    do
    	case $opt in
    		h) usage ;;
    		c) VarARGCONF="$OPTARG" ;;
    		*);;
    	esac
    done
     
    # Calcul the configuration file name
    VarCONF_LBSERV="httpd-load-balance-${VarARGCONF}.conf"
    if [ ! -f $VarCONF_LBSERV ]; then
    	echo "! The file $VarCONF_LBSERV doesn't exist."
        exit 1
    fi
     
    #Backup the current load-balancing configuration
    echo "Backup the current load-balancing configuration"
    cp -p $VarCONF_LOADBALANCE ${VarCONF_LBFULL}_$TODAYDATE".bak"
     
    #Rename the file
    echo "Rename the load-balancing configuration (from $VarCONF_LBSERV to $VarCONF_LOADBALANCE)"
    mv -f $VarCONF_LBSERV $VarCONF_LOADBALANCE
     
    #Do a gracefull on the Apache server
    echo "Do a gracefull on your Apache process"


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Bonjour Silfun1,

    Avant toutes choses, un tout tout tout grand merci, c'est vraiment super sympa d'avoir essayé de m'aider !!!
    Je vais essayer demain. Très bonnes idées ;-)

    Encore un grand merci.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Bonjour silfun1,

    Ton script fonctionne, encore merci pour ton temps et ton aide

    Petite question: comment une personne qui n'a pas accès au webserver pourrait effectuer le renommage du fichier de configuration à distance.

  7. #7
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 117
    Points : 187
    Points
    187
    Par défaut
    Salut Norten,

    Effectivement, c'est un peu compliqué d'executer des scripts bash si on a pas accès au serveur.
    Une idée serait de planifier les interventions, et donc de planifier l'exécution des scripts via une crontab.


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    En effet silfun1, je peux planifier les maintenances des serveurs, ça règle mon soucis.

    Grand merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelles sont les étapes pour préparer la création d'un jeu ?
    Par Nicolas A. dans le forum Développement 2D, 3D et Jeux
    Réponses: 13
    Dernier message: 17/09/2008, 18h09
  2. Réponses: 2
    Dernier message: 08/07/2008, 10h50
  3. [ganttproject]Quelles sont les possibilités
    Par Fleur-Anne.Blain dans le forum SharePoint
    Réponses: 0
    Dernier message: 27/05/2008, 11h13
  4. [MOSS2007]Quelles sont les possibilités de reporting?
    Par Fleur-Anne.Blain dans le forum SharePoint
    Réponses: 2
    Dernier message: 23/04/2008, 14h40
  5. Quelles sont les études pour devenir développeur ?
    Par soft0613 dans le forum Etudes
    Réponses: 9
    Dernier message: 15/11/2007, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo