在一个服务器上搭建多个网站如何实现
三种方案:IP来区分、端口号来区分、host来区分
如nginx中
IP来区分:
server {
listen 1.1.1.1:80;
}
server {
listen 2.2.2.2:80;
}
端口号来区分:
server {
listen 1.1.1.1:80;
}
server {
listen 1.1.1.1:81;
}
host(主机头)来区分:
server {
listen 1.1.1.1:80;
server_name www.a.com
}
server {
listen 1.1.1.1:80;
server_name www.b.com
}
一个服务器搭建两个网站
第一步:
[root@ubuntu2004]#mkdir /data/site_a/ROOT -p 创建网站数据存放a目录,数据必须放在ROOT下
[root@ubuntu2004]#mkdir /data/site_b/ROOT -p 创建网站数据存放b目录,数据必须放在ROOT下
在创建的a、b目录中放入测试数据
[root@ubuntu2004 ROOT]#rz -E
rz waiting to receive.
[root@ubuntu2004 ROOT]#cat index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat test</title>
</head>
<body>
<h1> Tomcat Website www.a.com </h1>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
[root@ubuntu2004 ROOT]#cp index.jsp /data/site_b/ROOT
修改内容,让a、b各自目录的测试数据内容不同
[root@ubuntu2004 ROOT]#vim/data/site_b/ROOT/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat test</title>
</head>
<body>
<h1> Tomcat Website www.b.com </h1>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
[root@ubuntu2004 data]#tree (jsp文件需index.jsp)
.
├── site_a
│ └── index.jsp
└── site_b
└── index.jsp
2 directories, 2 files
修系统带的默认数据留着
第二步:修改tomcat中的serverxml配置
</Host>
<Host name="www.a.com" appBase="/data/site_a" unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="/data/site_b" unpackWARs="true" autoDeploy="true">
</Host>
配置两个网站的域名以及数据存放的路径,如果想单独产生访问日志文件,可以在网站配置下把日志格式复制在下面并改日志名字
重启tomcat:
[root@ubuntu2004 ~]#systemctl restart tomcat.service
DNS解析 10.0.0.100 www.a.com www.b.com
去网页访问 www.a.com:8080 www.b.com:8080
Tomcat Website www.b.com
On www.b.com
10.0.0.100:8080
SessionID = C87C881167876C3A38CE1D84A206A1F5
Tue Sep 27 17:51:36 CST 2022
在主网站下的副业务如何配置
1、在主网站下搭建子业务/app1(子业务目录放在主目录下)
主网站下的副业务如何配置
[root@ubuntu2004]#mkdir /data/site_a/app1
在创建的app1目录中放入测试数据
[root@ubuntu2004]#cp /data/site_a/ROOT/index.jsp /data/site_a/app1
修改内容,让a、b、app1各自目录的测试数据内容不同
[root@ubuntu2004]#vim /data/site_a/app1/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat test</title>
</head>
<body>
<h1> Tomcat Website www.a.com/app1/ </h1>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
去网页访问副业务 www.a.com:8080/app1/ 此app1与ROOT平级
2、在主网站下搭建子业务/app-v2(子业务目录不放在主目录下)
用到Context配置
作用:路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
应用独立配置,例如单独配置应用日志、单独配置应用访问控制
[root@ubuntu2004 ~]#mkdir /opt/site_a/app2/ -p 映射路径
在创建的目录中放入测试数据
[root@ubuntu2004 site_a]#cp /data/site_a/app1/index.jsp /opt/site_a/app2/
修改数据内容
[root@ubuntu2004]#vim /opt/site_a/app2/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat test</title>
</head>
<body>
<h1> Tomcat Website www.a.com/app-v2/ </h1>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
更改server.xml配置
[root@ubuntu2004 ~]#vim /usr/local/tomcat/conf/server.xml
</Host>
<Host name="www.a.com" appBase="/data/site_a" unpackWARs="true" autoDeploy="true">
<Context path="/app-v2" docBase="/opt/site_a/app2" reloadable="true" />
</Host>
<Host name="www.b.com" appBase="/data/site_b" unpackWARs="true" autoDeploy="true">
</Host>
其中<Context path="/app-v2" docBase="/opt/site_a/app2" reloadable="true" />就是映射路径
还可以添加日志等独立的配置
改完之后保存并重启tomcat服务
systemctl restart tomcat
浏览器访问
www.a.com:8080/app-v2/index.jsp