考虑这样一个场景,咱们部署了若干web应用在一台云服务器上,这些web应用监听在不一样的端口号上。为了方便用户访问,咱们但愿这些web应用最终暴露给外界访问的网址是诸如"域名/webapp1", "域名/webapp2", "域名/webapp3"这种,而不是"域名:8001/webapp1", "域名:8002/webapp2", "域名:8003/webapp3"这种。nginx
换句话说,咱们但愿若干个web应用,暴露给用户的是同一个端口号。最理想的状况就是HTTP协议用默认的80端口,而HTTPS为默认的443端口。web
利用NGINX能够实现这个端口映射需求。json
假设我有一个web应用,监听在端口3001上:服务器
如今我但愿将这个3001端口隐藏起来。
只须要在nginx服务器的conf目录下,编辑nginx.conf这个文件,添加下面这个配置:app
location /env/ { proxy_pass http://localhost:3001/env; }
而个人nginx默认监听的端口是8099:webapp
这样我继续使用nginx的8099端口,也能经过上述配置,访问到本来监听在3001端口的应用了。spa
重复这个配置,就能实现监听在不一样端口的众多web应用,能经过nginx暴露的同一端口访问。3d
要获取更多Jerry的原创文章,请关注公众号"汪子熙":code