场景需求 业务服务器不能直接被外部网络访问到(即不能直接映射外网ip),因此需要一台代理服务器。 代理服务器可以被外部网络访问,同时连接到了业务服务器所在网络。
实现方式 利用nginx的反向代理功能。 将nginx服务器映射外网ip,业务服务器无需映射外网ip,外网用户访问时首先访问nginx服务器,然后再由nginx服务器访问业务服务器资源后转发给用户。
场景需求 若有很多业务系统需要使用同一个ip或者域名进行访问时,以不同后缀进行区分,需要用一台服务器做统一的访问入口。
实现方式 利用nginx的反向代理功能。 将nginx服务器作为用户统一的访问入口,然后根据设置的规则匹配不同的后缀转发至不同的业务服务器。通常和上一个反向代理场景结合使用,实现使用一个域名来访问多个业务系统。 同时还可以实现统一的https访问,需要在nginx服务器上配置证书,后端业务服务器无需每台额外配置证书即可实现https访问。
场景需求 部署多台业务服务器,将请求按一定的策略分发至业务服务器,实现业务服务的高可用及高并发。
实现方式 利用nginx的反向代理和负载均衡这两个功能。 根据配置的url后缀规则转发至upstream中各服务器列表,默认按轮询策略,同时还支持权重和ip_hash,有redis缓存登录seesion的方案中推荐使用轮询策略,否则使用ip_hash策略实现同一ip的用户请求固定至后端同一台服务器。
场景需求 站点实现动静资源分离,让网站里的动态网页根据一定规则把静态资源和动态资源区分开来,动静资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。
实现方式 利用nginx的静态服务器和反向代理这两个功能。 静态资源由nginx本地提供,动态资源通过反向代理到后端的tomcat提供,其中nginx和tomcat可以在同一台服务器上。