在一个服务器上搭建多个网站如何实现
三种方案: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 site_a]#rz -E
rz waiting to receive.
修改内容,让a、b各自目录的测试数据内容不同
[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
主网站下的副业务如何配置
[root@ubuntu2004]#mkdir /data/site_a/app1
在创建的app1目录中放入测试数据
[root@ubuntu2004 site_a]#rz -E
rz waiting to receive.
修改内容,让a、b、app1各自目录的测试数据内容不同
去网页访问副业务 www.a.com:8080/app1/ 此app1与ROOT平级
Context配置
作用:路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
应用独立配置,例如单独配置应用日志、单独配置应用访问控制
[root@ubuntu2004 ~]#mkdir /opt/site_a/app2/ -p 映射路径
在创建的目录中放入测试数据
[root@ubuntu2004 site_a]#rz -E
rz waiting to receive.
修改数据内容
更改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服务
实战案例:部署基于JAVA的博客系统JPress
安装包下载
第一步:
[root@ubuntu2004]#mkdir /data/jpress/ -p 创建网站数据存放的目录
把下载好的包拉进/data/jpress/目录,并改名为ROOT.war,它会自动解压成一个ROOT文件夹
[root@ubuntu2004 jpress]#rz -E
rz waiting to receive.
[root@ubuntu2004 jpress]#ls
jpress-v4.2.0.war
[root@ubuntu2004 jpress]#mv jpress-v4.2.0.war ROOT.war
[root@ubuntu2004 jpress]#ls
ROOT.war
第二步:更改server配置文件
[root@ubuntu2004 jpress]#vim /usr/local/tomcat/conf/server.xml
</Host>
<Host name="jpress.meng.com" appBase="/data/jpress" unpackWARs="true" autoDeploy="true">
</Host>
[root@ubuntu2004 jpress]#chown -R tomcat. /data/jpress/ 更改权限
[root@ubuntu2004 jpress]#systemctl restart tomcat.service
[root@ubuntu2004 jpress]#ls
ROOT ROOT.war
做DNS解析 10.0.0.100 jpress.meng.com
去网页访问 jpress.meng.com:8080 出现jpress页面
在MySQL中创建账号并授权
修改身份验证插件(改成传统的)MySQL8.0需要修改认证插件
[root@ubuntu2004 ~]#vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
重启MySQL
[root@ubuntu2004 ~]#systemctl restart mysql.service
mysql> create database jpress;
Query OK, 1 row affected (0.07 sec)
mysql> create user jpress@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on jpress.* to jpress@'127.0.0.1';
Query OK, 0 rows affected (0.01 sec)
去jpress网站输入信息创建jpress博客
端口号问题: 8080端口映射80端口
可用防火墙规则更改端口映射
[root@ubuntu2004 ~]#iptables -t nat -A PREROUTING -d 10.0.0.100 -p tcp --dport 80 -j REDIRECT --to-ports 8080
改完之后,去网页直接访问http://jpress.meng.com/ 监听端口还是8080,也可用nginx反向代理
[root@ubuntu2004 ~]#vim /etc/nginx/sites-enabled/jpress.conf
server {
listen 80;
server_name jpress.meng.com;
location / {
proxy_pass http://jpress.meng.com:8080;
}
}
nginx -s reload
[root@ubuntu2004 ~]#vim /etc/hosts DNS解析
127.0.0.1 jpress.meng.com
最好方法是加主机头,不用解析
[root@ubuntu2004 ~]#vim /etc/nginx/sites-enabled/jpress.conf
server {
listen 80;
server_name jpress.meng.com;
location / {
proxy_pass http://jpress.meng.com:8080;
proxy_set_header host $http_host;
}
}
8080改80端口三种方法(一般来说用第三种)
1 root 启动 修改tomcat。server.xml
vim /lib/systemd/system/tomcat.service
User=tomcat
Group=tomcat
[root@ubuntu2004 ~]#vim/usr/local/tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1"
2 防火墙端口映射
iptables -t nat -A PREROUTING -d 10.0.0.100 -p tcp --dport 80 -j REDIRECT --to-ports 8080
3 nginx反向代理
[root@ubuntu2004 ~]#vim /etc/nginx/sites-enabled/jpress.conf
server {
listen 80;
server_name jpress.wang.org;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header host $http_host;
}
}
tomcat默认页面三个选项
server status /usr/local/tomcat/webapps/manager/
manager app /usr/local/tomcat/webapps/manager/
host manager /usr/local/tomcat/webapps/host-manager/
第一个点进去需要授权:改文件
[root@ubuntu2004 ~]#vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>
</tomcat-users> 在最后一行上面添加,这行内容在web页面复制
重启tomcat服务
在本机装上火狐浏览器 apt -y install firefox
在本机打开[root@ubuntu2004 conf]#firefox http://127.0.0.1:8080
打不开改文件:
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />
重启服务
去网页访问 输入账号密码 tomcat 123456 显示tomcat状态页面
也可以命令行显示
[root@ubuntu2004 META-INF]#curl http://womcat:[email protected]:8080/manager/status
curl -u tomcat:123456 http://10.0.0.100:8080/manager/status 也可以
第二个点进去可以管理: 停止或者启动
第三个点进去需要授权:改文件 虚拟主机管理员
vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>
</tomcat-users>
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml 只是下面内容
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
-->
重启服务
面试题:TOMCAT有哪些端口
8080和8005
8005用于停止tomcat服务
telnet 127.0.0.1 8005
SHUTDOWN
只能停不能起,用普通用户也可以进行关闭,有安全风险,需要关闭
把8005端口改成-1端口
[root@ubuntu2004 ~]#vim /usr/local/tomcat/conf/server.xml
<Server port="-1" shutdown="SHUTDOWN">
把jsp文件打包成war包
jar cvf /root/hello.war *
把hello.war放到webapps下,会自动解开一个hello的文件,去网页访问www.a.com:8080/hello/session
定制版本号
[root@ubuntu2004 ~]#vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" Server="MengServer"/>
[root@ubuntu2004 ROOT]#systemctl restart tomcat.service
curl -u tomcat:123456 http://10.0.0.100:8080/manager/status -I 访问可看到tomcat版本被改
标签:8080,TOMCAT,tomcat,jpress,server,默认页,com,root,ubuntu2004
From: https://blog.51cto.com/mfc001/6307139