iptables 更改為 odoo 後如何解決 webmail?
我正在使用亞馬遜 ec2 實例作業系統:ubuntu 14.04
首先,我使用 odoo 伺服器來設計我的網站。通過http://example.com:8069訪問
然後我安裝了vesta面板並為我的域創建了郵件帳戶,該域是roundcube,可通過http://example.com/webmail訪問
在我在 odoo 上開發我的網站後,我在 rc.local 上添加了一條規則: iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8069
在我的主域名上訪問 odoo 網站,但從那時起,當我轉到它發送到我的 odoo 的 404 頁面的 URL 時,我無法訪問我的網路郵件。
我需要 odoo 和 webmail 希望工作任何幫助將不勝感激。
您的問題是圓形立方體綁定到埠 80。在您使用 iptables 將所有埠 80 流量重定向到 8069 以進行 oodo 之前,它工作正常。這使得 oodo 流量正常工作,但原本用於 roundcube 的流量也被 iptables 擷取並發送到 oodo(因此當您嘗試訪問 roundcube 時會出現 oodo 404 頁面)。
與大多數 Linux 一樣,有很多方法可以解決這個問題,但我建議設置一個反向代理來處理請求。代理可以在同一台伺服器上執行,並處理進入埠 80 的請求。它會分析請求並將其傳遞給適當的圓形立方體或 oodo。
我可能會使用 Nginx 作為我的代理,並這樣做:
- 將roundcube綁定到埠8000(或其他尚未使用的高埠。)這是因為我們需要為代理伺服器釋放埠80
- 安裝 Nginx 並將其配置為綁定到埠 80 的反向代理。有關其外觀的一些資訊在這裡: http: //nginx.com/resources/admin-guide/reverse-proxy/
- 在 Nginx 配置中,我將有一個位置塊來擷取 /webmail 的所有請求並將它們代理_傳遞給 localhost:8000(我們的圓形立方體安裝)。
- 所有其他請求都是 proxy_passed 到 localhost:8069 (oodo 安裝)
您使用什麼代理很容易取決於您更喜歡什麼。我很可能會使用 Nginx,但 Squid、Apache 或許多其他工具也可以工作。我不知道roundcube預設使用什麼作為網路伺服器,但是您可以使用它來代理oodo請求,而無需安裝其他任何東西。
我希望這至少能讓你朝著正確的方向前進。