nginx+Tomcat在同一台服务器上部署运行多个网站
大家都知道网站默认使用的端口是80,在单个服务器上部署一个网站很容易,将tomcat访问端口改为80,然后运行起来就可以了。但是如果有多个网站想部署运行,在服务器资源有限,ip资源有限的情况下,可否在单个服务器单个ip的情况下同时运行多个网站呢?当然是可以的,而且方案有很多,本文将分享利用nginx+tomcat部署运行多个网站的方法。
nginx就不必多说了,是一个高性能的HTTP和反向代理服务器。我们要做的就是让nginx来监听80端口,然后由它进行路由分发。废话不多说,直接上方案。
nginx的核心配置文nginx.conf,默认只有一个server配置片段,其实这一个server片段就代表了一个“网站”,如果有多个网站那就配置多个server就是了。假如现在有三个网站,域名分别是aa.com、bb.com、cc.com,那么该怎么配置呢?
#配置一个默认监听,可以将其作为aa.com server { listen 80 default_server;#只能配一个默认监听 server_name _; server_name_in_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log /home/wwwlogs/access_default.log; location / { proxy_pass http://localhost:8080; } } #bb.com server { listen 80; server_name bb.com; server_name_in_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log /home/wwwlogs/access_bb.log; location / { proxy_pass http://localhost:8081; } } #cc.com server { listen 80; server_name cc.com; server_name_in_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log /home/wwwlogs/access_cc.log; location / { proxy_pass http://localhost:8082; } }
上面的配置意思比较明确,就是服务器上运行1个nginx+3个tomcat,nginx负责监听80端口,3个tomcat负责运行三个不同的网站,分别占用端口8080,8081,8082。当访问aa.com的时候nginx将请求转发给8080那个tomcat;当访问bb.com的时候,nginx将请求转发给8081那个tomcat;当访问cc.com的时候,nginx将请求转发给8082那个tomcat。如果有更多的网站要运行就按照此模式参考配置就行。
在文章最开始的时候说过在同一个服务器上运行多个网站其实有多种方案,上面的方案有几个优越性:
1.各个网站在不同的tomcat容器中独自运行,也就意味着各个网站可以单独维护;
2.各个网站在不同的tomcat容器中独自运行,也就意味着内存使用互不干涉影响;
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5以小米6为例图说安卓手机如何安装谷歌四件套
-
6在微信中调用外部浏览器实现文件下载之解决
-
7java web项目代码不报错但是项目左上角有个红叉之解决
-
8Eclipse中svn资源库中文路径乱码解决
-
9万能方法用指定浏览器打开桌面上的网页快捷方式
-
10论坛注册:用户名包含被系统屏蔽的字符之完美解决
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5XML document structures must start and end within the same entity报错解决
-
6以小米6为例图说安卓手机如何安装谷歌四件套
-
7在微信中调用外部浏览器实现文件下载之解决
-
8U盘安装CentOS 7终极方案,简单有效
-
9POI合并单元格时CellRangeAddress类提示过时之解决
-
10java web项目代码不报错但是项目左上角有个红叉之解决