wir haben ein Portal auf 2 webserver (mit lokalen IPs) mit loadbalancing (der mit einer externen IP-Adresse angesprochen wird.) Wie kann ich PHP-Applikationen einstellen damit Dateien wie PDFs, CSVs u.s.w nur auf eine der lokalen IP auch zeilenweise geschrieben (und gelessen) werden?
Also wenn ich das richtig verstehe, ist Euer loadbalancer extern erreichbar und schaufelt die Daten je nach load entweder auf die eine lokale IP oder eben die andere. In dem Fall wäre es ja so, das auf den beiden lokalen Rechnern jeweils das Portal läuft. Also jede PHP Datei sowohl auf dem einen, als auch dem anderen Rechner liegt.
Wenn alle PDFs, CSVs, ... nur auf Server B sollen, dann wär es eine Möglichkeit auf Server B zusätzlich z.B. noch eine send.php und eine get.php zu legen, die entsprechend Dateien entgegennehmen oder ausliefern. Server B schreibt und liest seine Daten normal weiter und Server A macht dann mit curl den Umweg über die send.php oder get.php. Und für das zeilenweise bei den CSVs gibt es ja genug Dateisystem-Funktionen mit denen man das realisieren kann. Beim zeilenweisen Remoteauslesen würd die get.php z.B. auf Anfrage dann nur die erste Zeile und die Nummer des zuletzt gelesenen Bytes zurückgeben. Also letzte Byte Zeile 1 = Byte 2453 von Datei, letzte Byte Zeile 2 = Byte 3577 von Datei, ... Server A könnte dann mit der Anzahl der Bytes so lang neu anfragen, bis ein eof zurückkommt.
Alternativ kannst Du auch versuchen Dich mit PHP von Server A mittels FTP (wenn vorhanden) auf Server B einzuloggen und die Dateioperationen durchzuführen. Wäre bei einem lokal erreichbaren FTP kein wirklicher Akt. Ansonsten kennt PHP bei entsprechender Konfiguration auch SSH.
Am einfachsten wär es natürlich Du hättest ein Netzwerk-Filesystem zwischen den beiden lokalen Servern.