2010-11-11 6 views
2

J'ai un serveur distant qui fonctionne apache + mysql et j'ai développé une application dans mon ordinateur personnel pour administrer ma base de données. Mon application de mon home-pc se connecte à mon serveur distant et j'administre ma base de données (comme je l'ai dit, mysql fonctionne sur la même machine distante) depuis mon PC.Connectez-vous au serveur mysql distant depuis mon application. Le problème est que le serveur Mysql est sur le LAN

Les jours suivants, en raison d'un trafic intense, je vais utiliser un deuxième serveur distant comme serveur de base de données. Mon premier serveur distant ne gérera qu'apache, et le nouveau serveur distant ne traitera que la base de données mysql.

Le nouveau serveur distant mysql sera connecté à l'ancien serveur dans un réseau local. Donc, mon site web dans le serveur apache peut communiquer avec la base de données comme "192.168.x.x" (vous avez compris le point).

Le problème est: Comment mon application domestique va-t-elle communiquer avec le serveur de base de données ???? Le serveur de base de données sera en réseau local avec mon serveur Web, et seul le serveur Web pourra "voir" le serveur de base de données comme "192.168.x.x". Comment mon application domestique peut-elle "voir" le serveur de base de données qui est "caché" dans le LAN ??

Je suis un programmeur expérimenté, mais ai peu d'expérience avec les réseaux, excusez tout non-sens possible que j'ai écrit dans la description, j'espère que vous avez obtenu mon point et je serais heureux si vous pouvez me donner tous les articles-how-to utiles.

Merci les gars!

+0

Cela pourrait être une meilleure question pour serverfault.com – KeatsKelleher

+1

un admin peut-il déplacer ceci à serverfault ou je devrais re-publier ceci? – karman888

+0

Vous avez besoin d'une adresse IP publique pour votre serveur de base de données comme le fait votre ancien serveur. Ou vous pouvez «ssh» dans votre ancien serveur, à partir de là 'ssh 192.168.xx' qui est votre serveur de base de données ip privé – ajreal

Répondre

0

Une application que j'utilise utilise un tunnel SSH pour y parvenir. Désolé, il n'y a pas de réponse complète, mais peut-être que cela vous amènera dans la bonne direction :)

0

Comment le réseau est-il configuré?

[home pc] -> {internet} -> [firewall] -> [webserver] -> [database] 

ou

[home pc] -> {internet} -> [firewall] -> [webserver] 
             |  | 
             `-> [database] 

Dans les deux, si le serveur de base de données est la seule machine qui exécutera MySQL, vous devriez être en mesure de configurer le pare-feu et/ou serveur Web pour rediriger le port MySQL (3306 par défaut) de sorte que, pour ce qui est du monde extérieur, le serveur de base de données est directement accessible, même si vous acheminez des paquets via le pare-feu/serveur Web.

+0

la configuration sera [home pc] -> {internet} -> [serveur web + pare-feu] -LAN- > [serveur de base de données] le serveur Web communiquera en utilisant une deuxième carte réseau avec le serveur de base de données. Donc, si je comprends bien, je vais devoir configurer mon serveur pour le transfert de port. Mon application se connecte maintenant à mon seul et unique serveur de base de données Web en utilisant l'ip et le port standard. Si je comprends bien, les détails de connexion de mon application ne devront pas changer après que j'ai installé le serveur de databaser. – karman888

+0

Le seul changement qui doit être fait lorsque le nouveau serveur de base de données sera prêt, est de configurer le port forwardind de mon serveur web vers le serveur de base de données (que lui seul peut voir à travers le réseau local). Est-ce correct ou j'ai raté quelque chose ?? S'il vous plaît confirmer parce que je n'ai pas beaucoup d'expérience de matériel et je me sens un peu perdu! Et bien sûr merci beaucoup pour votre aide !!! J'en avais vraiment besoin!:) – karman888

+0

Oui, configurez le serveur Web pour le port 3306 vers le serveur de base de données. Une fois cela fait, votre PC à la maison se connectera au même IP/port, mais les paquets seront transférés de manière transparente au serveur de base de données, au lieu de rester sur le serveur web. –

Questions connexes