在 EC2 上使用 Nginx 和 Apache 設置反向代理
再會,
我目前正在使用免費的 Amazon EC2 微型實例來學習 Linux 和伺服器設置。
我希望將 Nginx 設置為反向 Web 代理。我在 mediatemple 上找到了一篇關於如何做到這一點的精彩文章:http ://wiki.mediatemple.net/w/Using_Nginx_as_a_Reverse_Web_Proxy
這些說明適用於除 EC2 之外的大多數伺服器。EC2 和 MediaTemple 之間的一個區別是 IP 的工作方式。總體而言,EC2 實例不知道它們的彈性 IP。因此,當按照虛擬主機中的 wiki 說明而不是 myip:80 時,我輸入 *:80。當只使用 Apache 時,這非常有效。
在 apache 虛擬主機中我做了“127.0.0.1:80”,在 Nginx 中我輸入了 *:80。
Apache 重啟時,Nginx 提供了一個無法綁定的錯誤,因為 ip 已在使用中。如果我可以在 Nginx 文件中添加一個實際的 IP,它會起作用,但由於 EC2 要求我輸入星號,它最終會與 apache 虛擬主機條目發生衝突。
任何人都知道解決這個問題的簡單方法(除了不使用 EC2);-) 謝謝!
乾杯,克里斯托弗
您的問題與彈性 IP 無關。問題是 Nginx 和 Apache 不能同時監聽 80 埠。簡單的解決方案是將 Apache 監聽的埠更改為 81 或 8080 作為範例,同時允許 Nginx 監聽埠 80(因為當有人在您的 URL 中輸入,您希望請求發送到 Nginx,而不是直接發送到 Apache)。
基本上,您要做的是閱讀該教程,並且每當您看到對 Apache 和埠 80 的引用時,請使用不同的埠,例如 8080 或 81。然後您需要更新您的 Nginx 配置以告訴它在你的新港口。
重新啟動這兩個服務,你會很高興。