Fórum Root.cz

Hlavní témata => Server => Téma založeno: Franz 05. 10. 2012, 09:52:05

Název: Web server/DB server a connect na DB
Přispěvatel: Franz 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?
Název: Re:Web server/DB server & connect na db
Přispěvatel: host 05. 10. 2012, 10:02:52
zdravim, napriklad NAT-ovanim portu cez iptables, moznosti je viac, len mi unika zmysle... :-), asi este spim.
Název: Re:Web server/DB server & connect na db
Přispěvatel: DK 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
Název: Re:Web server/DB server a connect na DB
Přispěvatel: Sten 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)
Název: Re:Web server/DB server a connect na DB
Přispěvatel: DK 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 :)
Název: Re:Web server/DB server a connect na DB
Přispěvatel: Sten 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.
Název: Re:Web server/DB server a connect na DB
Přispěvatel: Franz 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
Název: Re:Web server/DB server a connect na DB
Přispěvatel: Sten 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.