如何使用 NGINX 将 http 请求转发到在端口 80 上运行的应用程序

如何使用 NGINX 将 http 请求转发到在端口 80 上运行的应用程序

Ubuntu 服务器正在运行,
Glassfish 在端口 80(http) 和 443(https) 上,
Nginx 在端口 8080(http) 和 8081(https) 上

目标是,
www.hostname01.com要访问 Glassfish,
www.hostname02.com访问 Nginx

问题是,
是否可以使用 Nginx 代理传递配置来实现这一点?或者任何其他设置?

我看到的答案是 Nginx 在端口 80/443 上运行,因为这是默认的 http 请求,但是在我的环境中,Glassfish 在 Nginx 之前运行,并且我没有权限修改其设置,因此目前任何请求都会转到 Glassfish,除非指定端口号。
我可以编辑除 Glassfish 实例之外的任何其他服务器配置。

谢谢

答案1

实现此目的的唯一方法是将第二个 IP 地址绑定到网络接口,并将 Glassfish 明确绑定到第一个 IP,将 nginx 绑定到第二个 IP。
一旦任何应用程序侦听0.0.0.0:80该端口,其他任何应用程序都会被阻止。
完成此操作后,您可以使用指令bind中的参数告诉 nginx 仅侦听特定地址listen,如下所示:listen 192.0.2.1:80 bind
这是一个 IP 套接字主题,而不仅仅是一个配置主题。

相关内容