2010-11-11 131 views
2

我有一個運行apache + mysql的遠程服務器,並且我在家用電腦上開發了一個應用程序來管理我的數據庫。我的家用電腦的應用程序連接到我的遠程服務器,我從我的家用電腦管理我的數據庫(正如我說的mysql在同一臺遠程計算機上運行)。從我的應用程序連接到遠程mysql服務器。問題是Mysql服務器在局域網上

接下來的幾天,由於交通繁忙,我打算使用第二臺遠程服務器作爲數據庫服務器。我的第一個遠程服務器只處理apache,而新的遠程服務器只處理mysql數據庫。

新的mysql遠程服務器將連接到局域網中的舊服務器。所以我在apache服務器上的網站可以像「192.168.x.x」那樣與數據庫進行通信(你明白了)。

問題是:我的家庭應用程序將如何與數據庫服務器通信?數據庫服務器將與我的Web服務器一起位於LAN中,並且只有Web服務器可以像「192.168.x.x」一樣「查看」數據庫服務器。我的家庭應用程序如何能夠「看到」LAN中「隱藏」的數據庫服務器?

我是一位經驗豐富的程序員,但對網絡有一點經驗,請原諒我在描述中寫下的任何可能的無意義,我希望你明白我的觀點,如果你能給我一些幫助或指點我,我會很高興任何有用的文章 - 如何做。

謝謝你們!

+0

這可能是一個更好的問題serverfault.com – KeatsKelleher 2010-11-11 21:08:57

+1

管理員可以將此移至serverfault或我應該重新發布? – karman888 2010-11-11 21:15:15

+0

你需要爲你的數據庫服務器提供一個公共IP,就像你的舊服務器一樣。或者你可以'ssh'進入你的舊服務器,從那裏'ssh 192.168.xx'這是你的數據庫服務器私人ip – ajreal 2010-11-11 22:01:42

回答

0

我使用的一個應用程序利用ssh隧道來實現這一點。對不起,這是幾乎沒有一個完整的答案,但也許它會啓動你在正確的方向:)

0

如何配置網絡?

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

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

在這兩種,如果數據庫服務器是將運行MySQL的唯一機器,你應該能夠在防火牆和/或網絡服務器配置爲轉發的MySQL端口( 3306),因此就外界而言,即使實際上通過防火牆/網絡服務器路由數據包,數據庫服務器也可以直接訪問。

+0

的配置將會是[home pc] - > {internet} - > [webserver + firewall] -LAN- > [數據庫服務器] Web服務器將使用第二個NIC與數據庫服務器進行通信。 所以,如果我理解正確,我將不得不安裝我的服務器端口轉發。 我的應用程序現在使用ip和標準端口連接到我唯一的Web數據庫服務器。如果我理解正確,那麼在設置數據庫服務器之後,我的應用程序的連接細節將不必更改。 – karman888 2010-11-13 22:22:35

+0

當新的數據庫服務器準備就緒時,唯一需要做的改變是從我的web服務器設置端口轉發到數據庫服務器(只有他可以通過局域網看到)。 這是正確的,或者我錯過了什麼?請確認,因爲我沒有很多的硬件經驗,我覺得有點失落! 當然非常感謝你的幫助!我真的需要它!:) – karman888 2010-11-13 22:23:14

+0

是的,配置網絡服務器端口轉發3306到數據庫服務器。完成後,您的家用PC將連接到相同的IP /端口,但數據包將透明地轉發到數據庫服務器,而不是停留在Web服務器上。 – 2010-11-14 03:02:44