Web server/DB server a connect na DB

Franz

Web server/DB server a connect na DB
« kdy: 05. 10. 2012, 09:52:05 »
uvazujme nejakou hostingovou firmu, ktera ma zvlast server1 pro weby a zvlast server2 pro databaze.

na serveru1 pak delam web a chci se pripojit na db, v php connect() se ale pripojuju na localhost a ono to funguje.

Jak je toho docileno?A lze to vubec?
« Poslední změna: 05. 10. 2012, 10:40:33 od Petr Krčmář »


host

Re:Web server/DB server & connect na db
« Odpověď #1 kdy: 05. 10. 2012, 10:02:52 »
zdravim, napriklad NAT-ovanim portu cez iptables, moznosti je viac, len mi unika zmysle... :-), asi este spim.

DK

Re:Web server/DB server & connect na db
« Odpověď #2 kdy: 05. 10. 2012, 10:11:41 »
jednak je pomerne i nebezpecne jenom tak bez rozvaznosti pouzivat mysql_connect(), jednak muzete zmenit v /etc/hosts localhost na ip druheho serveru, nebo muzete pres iptables presmerovavat pozadavky na port 3306, nebo nebudete pouzivat localhost jako host


a jen tak mimochodem, da se nastavit defaultni host v php.ini

Sten

Re:Web server/DB server a connect na DB
« Odpověď #3 kdy: 05. 10. 2012, 12:18:27 »
iptables (NAT) ani hosts to určitě nejsou, connect na localhost jde přes socket. Ale může tam buď být druhá databáze, která se replikuje na ten druhý server, nebo nějaká proxy, třeba i s load balancingem (něco jako pgpool pro Postgres)

DK

Re:Web server/DB server a connect na DB
« Odpověď #4 kdy: 05. 10. 2012, 12:30:00 »
Sten: neni pravda, connect muze byt bud na socket, nebo na adresu:port, pokud chce v mysql_connect pouzivat localhost, nepripojuje se na socket, ale na port - proto je mozne pouzit iptables


a propos, replikovana databaze mu asi moc nepomuze, to uz muze mit jenom jednu masinu :)


Sten

Re:Web server/DB server a connect na DB
« Odpověď #5 kdy: 05. 10. 2012, 13:58:08 »
Sten: neni pravda, connect muze byt bud na socket, nebo na adresu:port, pokud chce v mysql_connect pouzivat localhost, nepripojuje se na socket, ale na port - proto je mozne pouzit iptables

Tak si to zkuste ;)

Citace
Whenever you specify "localhost" or "localhost:port" as server, the MySQL client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use "127.0.0.1" instead of "localhost". If the MySQL client library tries to connect to the wrong local socket, you should set the correct path as in your PHP configuration and leave the server field blank.

Franz

Re:Web server/DB server a connect na DB
« Odpověď #6 kdy: 06. 10. 2012, 00:03:18 »
je to jen teoreticky priklad, jde mi proste o to, jak to udelat, ze pri connectu pisete localhost a pritom jede mysql na jinem serveru

Sten

Re:Web server/DB server a connect na DB
« Odpověď #7 kdy: 06. 10. 2012, 20:54:22 »
je to jen teoreticky priklad, jde mi proste o to, jak to udelat, ze pri connectu pisete localhost a pritom jede mysql na jinem serveru
Je možné spustit program socat tak, aby naslouchal na socketu, kam se bude připojovat to PHP, a přeposílal všechny pakety na ten druhý server. Pokud to spojení chcete šifrovat, socat umí i SSL.