在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。 所以,当在虚拟主机中的维基指令,而不是myip:80例如我把*:80。 当只使用Apache这个完美的作品。

在apache虚拟主机中,我做了“127.0.0.1:80”,而在Nginx中我把*:80。

Apache重启,Nginx提供了一个错误,它不能绑定,因为这个ip已经在使用了。 如果我可以在Nginx文件中添加一个实际的IP地址,它可以工作,但是由于EC2要求我input星号,所以最终会与apache虚拟主机条目冲突。

任何人都知道一个简单的方法(除了不使用EC2);-)谢谢!

干杯,克里斯托弗

您的问题与弹性IP无关。 问题是Nginx和Apache都不能同时监听端口80.简单的解决scheme是将Apache监听的端口改为81或8080,同时允许Nginx监听端口80(因为当某人types在你的URL中,你希望请求到Nginx,而不是直接到Apache)。

基本上,你想要做的是通过这个教程,每当你看到一个对Apache和80端口的引用时,使用不同的端口,如8080或81.然后你需要更新你的Nginxconfiguration,告诉它寻找Apache你的新港口。

重新启动这两个服务,你会很好去。