Comment mettre différentes entrées d'hôte sur le même serveur linux, pour les hôtes virtuels différents? [fermé]
Question
La configuration est: Deux applications sont hébergées sur le même serveur linux en utilisant les entrées de vhost dans apache configuration. dire:
et
Les deux ont une fonctionnalité où ils font la demande http côté serveur à un troisième URL (en utilisant php cURL / file_get_contents):
Maintenant, il y a une entrée d'hôte d'un dans le fichier hosts '/ etc / hosts'
xx.xx.xx.xx apis.example.com
Ceci est uniquement destiné à un code greatapp.example.com, et non pour superapp.example.com.
Comment configurer le serveur tel que greatapps.example.com utilise l'entrée d'hôte, mais superapp.example.com utilise l'adresse IP publique de apis.example.com
La solution
Il ne peut se faire directement: l'espace de nom d'hôte est global par hôte
. Vous pourriez exécuter l'un des Apaches dans une machine virtuelle avec un fichier /etc/hosts
différent.
Autres conseils
Voici comment je le ferais:
- Chacune de mes applications aura un fichier de configuration qui sera lu. Ce fichier de configuration peut spécifier ce URL à utiliser. Vous pouvez utiliser les bibliothèques existantes pour lire les fichiers de configuration. Dans cet exemple, je vais utiliser Zend_Config_Ini. Voici ce que votre fichier de configuration peut ressembler à une grande application:
[Paramètres]
urls.third_party = 'xxx.xxx.xxx.xxx'
Ceci est un est pour superapp
[Paramètres]
urls.third_party = 'http://apis.example.com'
2.Read l'URL d'un fichier de configuration à l'aide Zend_Config_Ini par exemple:
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('application.ini', 'settings');
$app_config = $config->toArray();
$third_party_url = $app_config['urls']['third_party'];
Je pense que vous êtes de cette façon plus souple que vous pouvez facilement changer l'URL dans le fichier de configuration de l'application concernée facilement.