Eigene API / Schnittstelle zwischen zwei Servern

String

Erfahrenes Mitglied
Hallo zusammen,

ich stehe vor einem kleinen Problem. Und zwar soll ich Daten die auf Server A in einer MySql-DB gespeichert sind. Von Server B aus abrufen können.

Daher dieses Gebiet für mich absolutes neuland ist, frage ich euch, wie ich das am besten anstelle. Die MySQL-DB auf Server A würde ich nur höchst ungern für Zugriffe außerhalb "local" öffnen.

Es sollen zwar keine vertraulichen Daten gesendet bzw. übergeben werden, aber die Sicherheit darf auch nicht zu kurz kommen.

Meine erste Idee war bzw. ist sehr simpel:
Server B öffnet eine Datei (per PHP) von Server A. Diese enthält in einfacher Text-Form die gewünschten Daten. Allerdings stelle ich mir das ganze, auf dauer sehr langsam vor. Zumal mit einem "Script" auf Server B mehere Daten von Server A benötigt werden. Sicherheit wäre hier wohl voll gegeben, da ich die Datei auf Server A und deren Zugriffsrechte auf MySQL ja voll steuern kann.

Eine Socket-Verbindung wäre wohl wesentlich schneller, allerdings glaube ich nicht das es für meine Verwendung wirklich nötig ist, oder?

Deshalb nun meine Frage(n) an euch:
- Wie würdet ihr das realiseren?
- Habt ihr vielleicht sogar einige Beispiele die ich mir anschauen kann?
- Sollte ich aus Sicherheitsgründen lieber ganz die Finger davon lassen?

Danke im Voraus

String
 
Hi,

Meine erste Idee war bzw. ist sehr simpel:
Server B öffnet eine Datei (per PHP) von Server A. Diese enthält in einfacher Text-Form die gewünschten Daten.

Und wie kommen die Daten in diese Textdatei? Warum legst Du nicht einfach auf Server A ein PHP-Script, das die Daten direkt aus der DB holt und rufst das von Server B aus auf?

LG
 
Hi,
Und wie kommen die Daten in diese Textdatei? Warum legst Du nicht einfach auf Server A ein PHP-Script, das die Daten direkt aus der DB holt und rufst das von Server B aus auf?
LG

Das ist ja das, was ich vorhatte ;)
Allerdings sollen die Daten "mittem im Quelltext" erscheinen. Deswegen kann ich nicht einfach die Datei von Server A öffnen.

Also lieg ich gar nicht so falsch, wenn ich das so mache:
Server A Datei:
// Öffne SQL und hole Daten
// Gebe Daten ala "ERGEBNISA||ERGEBNISB" aus.

Server B Datei:
// Lade Date von Server A in eine Variable
// Explode ||

..und somit hätte ich meine Ergebnisse!?

paD
 
Hallo,

sind die Server beide in einem Netzwerk?
Wenn ja, könntest du dieses Problem ggf. mittels einer DMZ lösen.

Grüße
 
Also das mit der Textdatei ist bei vielen Anfragen natürlich langsam, ich weiß ja nicht, was dein Projekt für einen Umfang hat.

Musst du die Daten denn umbedingt auf Server B haben?
Ansonsten kannst du doch alles auf einem Server machen und dabei den MySQL-Zugriff weiterhin local belassen.
 
Hi,

Das ist ja das, was ich vorhatte ;)

drückst Dich halt etwas schwammig aus... ;)

Allerdings sollen die Daten "mittem im Quelltext" erscheinen. Deswegen kann ich nicht einfach die Datei von Server A öffnen.

Also lieg ich gar nicht so falsch, wenn ich das so mache:
Server A Datei:
// Öffne SQL und hole Daten
// Gebe Daten ala "ERGEBNISA||ERGEBNISB" aus.

Server B Datei:
// Lade Date von Server A in eine Variable
// Explode ||

..und somit hätte ich meine Ergebnisse!?

So in etwa. In Deinem PHP-Script auf Server B machst Du halt einen Request z.B. per [phpf]fsockopen[/phpf] auf das PHP-Script auf Server A und speicherst den Response in einer Variablen.

Wenn Du Dein Script auf Server A so gestalten kannst, dass es gleich den gewünschten HTML-Code liefert und auf Server B allow_url_fopen aktiviert ist, kannst Du das auch gleich per [phpf]include[/phpf] einbinden. Kommt halt auf Deine Anwendung an.

LG
 
Ich habe das gestern einmal mit fsock getestet und das ging eigentlich sehr gut.
Allerdings wird es, sobald ich öfter mit einem Script darauf zugreife ziemlich langsam.

Jetzt teste ich gerade wie das funktioniert, wenn ich erstmal alle Daten sammel die ich benötige und dann eine Große abfrage, dafür aber nur einmal erstelle.

Danke!
 
Zurück