這可能是一個簡單的問題,所以請原諒我...
我運行一台 Synogy NAS,可透過連接埠 5000 從外部存取。穆德爾我希望外界可以看到 Synology 上的伺服器。
現在,我只能透過 NAS/Moodle 在內部進行。我在遠端時透過 dyndns 存取這一切。有沒有辦法遠端存取Moodle?我想不出辦法...
謝謝你!
答案1
答案就是「連接埠轉送」。您的本機網路可能位於 NAT 裝置後面,而該裝置就是您的路由器\防火牆。該設備是唯一接受來自互聯網的傳入資料包的設備。由於您的本地設備不可公開路由,因此路由器不知道將傳入資料包發送到哪個本地設備,除非您告訴它。
登入您的邊界設備(路由器\防火牆)並尋找連接埠轉送規則。您需要將 Moodle 連接埠轉送到 NAS 才能遠端連接到它。 Moodle 使用連接埠 80。如果該 Web 服務已使用連接埠 80,那麼您需要變更 Web 伺服器或 Moodle 伺服器的連接埠。
您可以在連接埠 8080 上執行一個。
或者
您可以設定一個代理,例如 NGNIX 來處理傳入流量。看起來是這樣的:連接埠 80 將被轉送到 NGNIX 伺服器。然後,您可以將主網站放在 yourhostname.com 上,將 Moodle 網站放在子網域(例如,moodle.yourhostname.com)上。然後 NGNIX 可以根據主機名稱將流量轉送到不同的後端 Web 伺服器。
話雖如此,看起來您應該只使用託管解決方案,例如: https://new.moodle.net/
答案2
如果 Moodle 運行在另一個連接埠(80 除外)上,那麼您應該能夠設定您的路由器來存取它,就像您的 NAS 在連接埠 5000 上一樣(即透過連接埠轉送)。
但是,如果 Moodle 在 NAS 上的連接埠 80 上運行(或者您不希望在其他連接埠上使用 Moodle 時看到連接埠號碼),那麼您將需要設定一個反向代理在您的網路上。簡而言之,反向代理程式偵聽傳入的 HTTP 請求,並有助於將這些請求導向至正確的伺服器。它還有助於將回應轉發回原始客戶端。
建立反向代理通常只需要在網路上設定伺服器來處理此功能。雖然可以透過 NAS 執行此操作,您可能只需使用 Web 伺服器即可對 PC 有更多的控制。在這種情況下,您的通信鏈可能是:
<Internet> <---> <Router> <---> <Web Server [Reverse Proxy]> <---> <NAS>
請注意,雖然您<Web Server>
是上圖中的反向代理,但它仍然可以分發在該伺服器上配置的網站。
設定反向代理的實際步驟將根據所使用的設備或軟體而有所不同。例如,Apache 使用某些模組和“虛擬主機”,而 Nginx 使用(虛擬)“伺服器區塊”,而您的 NAS 可能有自己的設定方式。
無論如何,作為一般規則,您將需要/需要第二個網域(動態或其他)來存取 Moodle。這通常是區分在相同 IP:連接埠組合上運行的網站的最簡單(或唯一)方法。這可能是一個子域(即http://subdomain.example.com
)。