我想知道nginx是否能够在同一端口上处理http和https请求。[*]
这就是我想要做的。我正在运行用于处理http请求的Web服务器(lighttpd),以及一个通过https服务文档树的特定部分的C程序。这两个进程在同一服务器上运行。
在防火墙级别,我只能有一个端口将流量转发到该服务器。因此,我想在此服务器上设置nginx,以便它在单个端口上侦听请求,然后:
A)重定向所有http://myhost.com/ *请求,以便它们转到localhost:8080(lighttpd正在侦听)
B)如果用户请求以例如https:// myhost.com/app开头的URL,则会将该请求发送到localhost:8008(C程序)。请注意,在这种情况下,必须对远程浏览器和nginx之间的通信进行加密。
您认为这可能吗?如果是,该怎么办?
我知道如何使用两个不同的端口来执行此操作。我面临的挑战是仅使用一个端口来完成此操作(不幸的是,我无法控制此特定环境上的防火墙配置,因此这是我无法避免的限制)。使用诸如通过ssh进行反向端口转发来绕过防火墙的技术也不起作用,因为这仅适用于仅具有Web浏览器和Internet链接的远程用户。
如果这超出了nginx的功能,您是否知道其他任何可以满足此要求的产品?(到目前为止,我在使用lighttpd和pound进行设置方面一直没有成功)。我也希望避免使用Apache(尽管如果它是唯一的选择,我愿意使用它)。
预先感谢Alex
[*]要清楚一点,我说的是通过同一端口处理加密和未加密的HTTP连接。加密是通过SSL还是TLS无关紧要。