在 EC2 上使用 Nginx 和 Apache 设置反向代理

在 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 指示操作时,例如,我输入的是 *:80,而不是 myip:80。当仅使用 Apache 时,这非常有效。

在 apache 虚拟主机中我输入了“127.0.0.1:80”,在 Nginx 中我输入了 *:80。

Apache 重新启动,但 Nginx 提供了一个错误,即无法绑定,因为该 IP 已被使用。如果我可以在 Nginx 文件中添加实际 IP,它就可以工作,但由于 EC2 要求我输入星号,因此它最终会与 Apache 虚拟主机条目发生冲突。

有人知道解决这个问题的简单方法吗(除了不使用 EC2);-) 谢谢!

干杯,克里斯托弗

答案1

您的问题与弹性 IP 无关。问题是 Nginx 和 Apache 不能同时监听端口 80。简单的解决方案是将 Apache 监听的端口更改为 81 或 8080(例如),同时允许 Nginx 监听端口 80(因为当有人输入您的 URL 时,您希望请求转到 Nginx,而不是直接转到 Apache)。

基本上,您要做的是完成该教程,每当您看到对 Apache 和端口 80 的引用时,请使用不同的端口,如 8080 或 81。然后,您需要更新 Nginx 配置以告诉它在新端口上查找 Apache。

重新启动这两项服务就可以了。

相关内容