考虑这样一个场景,我们在一个云服务器上部署了几个web应用,这些web应用监听不同的端口号。为了方便用户访问,我们希望这些Web应用最终暴露给外界的URL是“域名/webapp1”、“域名/webapp2”、“域名/webapp3”等,而不是“域名:8001/webapp1”,“域名:8002/webapp2”,“域名:8003/webapp3”。换句话说,我们希望多个Web应用程序向用户公开相同的端口号。理想情况是HTTP协议使用默认的80端口,而HTTPS使用默认的443端口。这种端口映射需求可以使用NGINX来实现。假设我有一个侦听端口3001的Web应用程序:现在我想隐藏这个3001端口。只需编辑nginx服务器conf目录下的nginx.conf文件,添加如下配置:location/env/{proxy_passhttp://localhost:3001/env;而我的nginx默认监听端口是8099:这样我继续使用nginx的8099端口,通过上面的配置,我就可以访问原来监听3001端口的应用了,重复这个配置,很多web应用监听通过nginx暴露的同一个端口可以访问不同的端口。获取更多Jerry原创文章,请关注公众号“王子熙”:
