大牛?无他,唯手熟尔!

nginx+Tomcat在同一台服务器上部署运行多个网站

2018-05-15 10:39:20来源:caogenjava阅读[294]评论[0]
摘要:大家都知道网站默认使用的端口是80,在单个服务器上部署一个网站很容易,将tomcat访问端口改为80,然后运行起来就可以了。但是如果有多个网站想部署运行,在服务器资源有限,ip资源有限的情况下,可否在单个服务器单个ip的情况下同时运行多个网站呢?当然是可以的,而且方案有很多,本文将分享利用nginx+tomcat部署运行多个网站的方法。

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/97.html

大家都知道网站默认使用的端口是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容器中独自运行,也就意味着内存使用互不干涉影响;


除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/97.html

上一篇:my97datepicker日期控件在谷歌浏览器上被遮挡之解决        下一篇:windows平台mysql绿色版5.7.21安装使用教程
网友评论,共0 发表评论
昵称:
评论:
验证码: 刷新验证码