6、WEB站点部署
上线的代码有两种方式:
第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。
第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。
1、使用war包部署web站点
代码语言:javascript复制[root@web03 webapps]# pwd
/application/tomcat/webapps
[root@web03 webapps]# wget http://10.0.0.1/apache/tomcat/memtest.war
站点主动解压部署
代码语言:javascript复制[root@web03 webapps]# ls
docs examples host-manager logs manager memtest memtest.war ROOT
浏览器访问:
http://10.0.0.17:8080//memtest/meminfo.jsp
2、自定义默认网站目录
上面访问的网址为 http://10.0.0.3:8080/memtest/meminfo.jsp
现在想访问格式为http://10.0.0.3:8080/meminfo.jsp
方法一
将meminfo.jsp或其他程序放在tomcat/webapps/ROOT目录下即可。因为默认网站根目录为tomcat/webapps/ROOT
方法二
代码语言:javascript复制[root@web03 ~]# vim /application/tomcat/conf/server.xml 125
…… #添加上这两行
<Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
<Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
……
修改配置文件后,要重启服务
代码语言:javascript复制[root@web03 ~]# /application/tomcat/bin/shutdown.sh
[root@web03 ~]# /application/tomcat/bin/startup.sh
3、部署开源站点(jpress)
jpress官网:http://jpress.io
下载地址:https://github.com/JpressProjects/jpress
第一个里程碑:安装配置数据库
代码语言:javascript复制yum -y install mariadb-server
systemctl start mariadb.service
#配置数据库
代码语言:javascript复制mysql
create database jpress DEFAULT CHARACTER SET utf8;
grant all on jpress.* to jpress@'localhost' identified by '123456';
exit
第二个里程碑:jpress站点上线
代码语言:javascript复制[root@web03 webapps]# pwd
/application/tomcat/webapps
[root@web03 webapps]# wget http://10.0.0.1/apache/tomcat/jpress-web-newest.war
第三个里程碑:浏览器访问
浏览器访问: http://10.0.0.17:8080/jpress-web-newest/install
填写数据库信息
设置站点名称等
安装完成
重启tomcat服务
代码语言:javascript复制[root@web03 ~]# /application/tomcat/bin/shutdown.sh
[root@web03 ~]# /application/tomcat/bin/startup.sh
7、Tomcat多实例配置
多虚拟主机:nginx 多个Server标签(域名,ip,端口) 进程数量固定 master worker
多实例(多进程):同一个程序启动多次,分为两种情况:
第一种:一台机器跑多个站点;
第二种:一个机器跑一个站点多个实例,配合负载均衡
1、复制程序文件
代码语言:javascript复制cd /application/tools/
tar xf apache-tomcat-8.0.27.tar.gz
cp -a apache-tomqcat-8.0.27 tomcat8_1
cp -a apache-tomcat-8.0.27 tomcat8_2
修改端口,以启动多实例。多实例之间端口不能一致
代码语言:javascript复制sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml
[root@web03 application]# diff tomcat8_1/conf/server.xml tomcat8_2/conf/server.xml
22c22
< <Server port="8011" shutdown="SHUTDOWN">
---
> <Server port="8012" shutdown="SHUTDOWN">
67c67
< Define a non-SSL/TLS HTTP/1.1 Connector on port 8081
---
> Define a non-SSL/TLS HTTP/1.1 Connector on port 8082
69c69
< <Connector port="8081" protocol="HTTP/1.1"
---
> <Connector port="8082" protocol="HTTP/1.1"
75c75
< port="8081" protocol="HTTP/1.1"
---
> port="8082" protocol="HTTP/1.1"
将配置好的tomcat程序打包,以备之后使用
代码语言:javascript复制tar zcf muti_tomcat8.tar.gz ./tomcat8_1 ./tomcat8_2
启动tomcat多实例
代码语言:javascript复制/application/tomcat8_1/bin/startup.sh
/application/tomcat8_2/bin/startup.sh
检查端口是否启动
代码语言:javascript复制[root@web03 tomcat8_1]# netstat -lntup |grep java
tcp6 0 0 127.0.0.1:8011 :::* LISTEN 31906/java
tcp6 0 0 127.0.0.1:8012 :::* LISTEN 31932/java
tcp6 0 0 :::8080 :::* LISTEN 31812/java
tcp6 0 0 :::8081 :::* LISTEN 31906/java
tcp6 0 0 :::8082 :::* LISTEN 31932/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 31812/java
tcp6 0 0 :::8009 :::* LISTEN 31812/java
将每个实例的网页进行区分
代码语言:javascript复制echo 8081 >>/application/tomcat8_1/webapps/ROOT/index.jsp
echo 8082 >>/application/tomcat8_2/webapps/ROOT/index.jsp
2、在浏览器访问,进行测试
检查多实例的启动
http://10.0.0.17:8082
http://10.0.0.17:8081
8、tomcat反向代理集群
1、负载均衡器说明
代码语言:javascript复制[root@lb01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@lb01 ~]# uname -a
Linux lb01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@lb01 ~]# getenforce
Disabled
[root@lb01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
负载均衡软件使用nginx,详情参照
http://www.cnblogs.com/clsn/p/7750615.html
2、配置负载均衡器
备份原配置文件
代码语言:javascript复制mv /application/nginx/conf/nginx.conf{,.20171127}
egrep -v '#|^$' /application/nginx/conf/nginx.conf.default > /application/nginx/conf/nginx.conf
配置文件内容
代码语言:javascript复制[root@lb01 ~]# cat /application/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web_pools {
server 10.0.0.17:8081;
server 10.0.0.17:8082;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.jsp index.htm;
proxy_pass http://web_pools;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置完成后重启nginx服务
代码语言:javascript复制/application/nginx/sbin/nginx -s stop
/application/nginx/sbin/nginx
3、使用命令进行访问测试
使用curl 命令进行测试,tail进行关键字提取
代码语言:javascript复制[root@lb01 ~]# curl -s 10.0.0.5|tail -1
8081
[root@lb01 ~]# curl -s 10.0.0.5|tail -1
8082
使用curl 命令进行测试,awk进行关键字提取
代码语言:javascript复制[root@lb01 ~]# curl -s 10.0.0.5|awk 'END{print}'
8082
[root@lb01 ~]# curl -s 10.0.0.5|awk 'END{print}'
8081
使用curl 命令进行测试,sed进行关键字提取
代码语言:javascript复制[root@lb01 ~]# curl -s 10.0.0.5|sed -n '$p'
8082
[root@lb01 ~]# curl -s 10.0.0.5|sed -n '$p'
8081
4、在浏览器上进行访问测试
建议使用google浏览器chrome 的隐身模式进行访问,使用ctrl f5 进行强制刷新