在开发Web项目的时候往往会遇到这种情况:后台服务端一个项目,前端客户端一个项目,微信平台对接一个项目,etc。但是所有的Web项目想要共用同一个host和port(即同一个域名),而现网络上提供的云服务器大多数都是限制对外端口的,可用的端口一般只有80(http)、443(https)、22(SSH)、3389(Windows远程桌面),部分比较良心的服务器可能还会提供8080(WWW代理服务)或者其他端口。如果所有项目都使用tomcat部署可以轻松解决这个问题,但是如果需要用到maven项目和tomcat项目复用端口,那就让人头痛了。
我在接手别人的一个微信项目的时候就遇到这个问题,这个项目用SpringMVC实现,但是与微信平台对接却是使用Maven项目,而且交接的人没有跟我说用什么方式搭建服务器,最后就选择了我熟悉用的tomcat来部署SpringMVC的项目,但是这样问题就来了,Maven项目独占使用80端口,Tomcat项目使用8080端口在服务器上无法对外访问,而改为80端口又被Maven项目占用,这样只能选择开启443端口给Tomcat。
我不甘心分配一个https的端口给一个本应该使用http端口的项目,因此我在网上找了一轮终于得知了Nginx反向代理的方法,经过一轮测试之后成功了,因此在这里记录下来。
废话不多说直接上Nginx的安装和配置技巧
1、安装gcc-c++
[root@x ~]# yum -y install gcc-c++
2、安装pcre
PCRE 作用是让 Nginx 支持 Rewrite 功能。