Existe-t-il un moyen d'accéder à un serveur spécifique avec le nom d'hôte dans une configuration à tour de rôle?

8

J'ai un cluster de serveurs Web Apache utilisant le tourniquet pour l'équilibrage de charge primitif. Existe-t-il un moyen pour Firefox ou Chrome de demander ce nom de serveur à partir d'une adresse IP spécifique?

Si vous entrez simplement le http://1.2.3.4 , il n'obtient pas le ServerName, et si vous entrez http: // servername , vous pouvez obtenir n'importe lequel des serveurs.

Bryan Agee
la source
Le round-robin est-il un type de connexion de session persistante au serveur principal?
djangofan
2
Les réponses de Dmourati et Eduardo sont toutes deux parfaites.
Hyppy
@djangofan: Non - les serveurs sont configurés de manière totalement parallèle par rapport à la session. Si l'un d'eux tombe, tout autre serveur peut reprendre la transaction.
Bryan Agee

Réponses:

10

Je suppose que vous voulez dire le round-robin DNS. Dans ce cas, la manière de base à laquelle je peux penser est de simplement modifier vos / etc / hosts pour pointer vers le backend que vous voulez essayer à un moment particulier:

1.2.3.4 servername

Vous devrez peut-être redémarrer votre navigateur par la suite pour vous assurer qu'il n'est pas utilisé une réponse DNS mise en cache.

Vous pouvez également ajouter des entrées supplémentaires dans votre DNS comme servername-001, -002, etc. et configurer vos backends pour accepter ces noms en tant que ServerAlias ​​pour le VirtualHost que vous visez. Bien sûr, vous pouvez également définir VirtualHost par défaut pour qu'il fonctionne en utilisant l'IP et omettre cette dernière étape, en supposant que votre application ne suppose pas qu'elle fonctionne avec un nom particulier.

Modifier: cela peut être utile - c'est une extension Firefox qui vous permet de modifier les en-têtes de demande. On pourrait sans doute modifier Hostpour visiter les backends spécifiant directement un ServerName. Je ne l'ai pas essayé cependant.

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

Eduardo Ivanec
la source
11

Vous devez modifier l'en-tête de l'hôte HTTP.

Voir:

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

Je fais ça avec curl:

curl -H host:servername http://1.2.3.4

Vous pouvez trouver les plugins suivants utiles:

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/eula/33806

dmourati
la source
J'ai modifié mon article avec la même URL avant de voir votre contribution! J'espère que cela ne vous dérange pas. +1 pour curl.
Eduardo Ivanec
@Eduardo, pas du tout. J'ai récemment essayé de résoudre ce problème exact et j'utilise moi-même l'approche curl. Impossible de trouver quelque chose d'utile pour OP sur le devant chromé.
dmourati
Certainement +1 pour la pointe de la boucle. Merci!
Bryan Agee