建筑课程网站,免费做网站网站的软件,wordpress突然变慢,如何建设小说网站tomcat的多实例 动静分离
排错小工具#xff1a; telnet工具#xff1a;yum -y install telnet telnet工具用于测试端口是否正常
telnet 20.0.0.101 80Tomcat多实例部署#xff1a; 一台服务器上有多个tomcat的服务
1.安装好 jdk
2.安装 tomcat
cd /opt
tar zxvf apache-…tomcat的多实例 动静分离
排错小工具 telnet工具yum -y install telnet telnet工具用于测试端口是否正常
telnet 20.0.0.101 80Tomcat多实例部署 一台服务器上有多个tomcat的服务
1.安装好 jdk
2.安装 tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat23.配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1/usr/local/tomcat/tomcat1
export CATALINA_BASE1/usr/local/tomcat/tomcat1
export TOMCAT_HOME1/usr/local/tomcat/tomcat1#tomcat2
export CATALINA_HOME2/usr/local/tomcat/tomcat2
export CATALINA_BASE2/usr/local/tomcat/tomcat2
export TOMCAT_HOME2/usr/local/tomcat/tomcat2source /etc/profile.d/tomcat.sh4.修改 tomcat2 中的 server.xml 文件要求各 tomcat 实例配置不能有重复的端口号
先进行备份以便出错后好进行回滚
cp server.xml server.xml.bak
vim /usr/local/tomcat/tomcat2/conf/server.xml
Server port8006 shutdownSHUTDOWN #22行修改Server prot默认为8005 - 修改为8006
Connector port8081 protocolHTTP/1.1 #69行修改Connector portHTTP/1.1 默认为8080 - 修改为8081
Connector port8010 protocolAJP/1.3 redirectPort8443 /
#116行修改Connector port AJP/1.3默认为::8009 - 修改为8010----------------------------------------------------------------------------------------------------------
第一个连接器默认监听8080端口负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时使用的就是这个连接器。
第二个连接器默认监听8009端口负责和其他的HTTP服务器建立连接。
在把Tomcat与其他HTTP服务器集成时需要用到这个连接器。第三个连接器
port8010指定AJP连接器监听的端口号。在这个示例中AJP连接器监听在8010端口上。protocolAJP/1.3指定连接器所使用的协议。这里设置为AJP/1.3表示使用AJP协议的版本1.3。redirectPort8443指定重定向端口。当AJP连接器接收到HTTP请求时如果请求是通过HTTPS加密访问的
则会将请求重定向到8443端口。AJP连接器用于将静态资源和动态请求从前端Web服务器如Apache HTTP Server转发到Tomcat服务器。
这样可以将Tomcat服务器隐藏在防火墙之后提高安全性同时提供更高的性能特别是在处理动态请求时。
常见的AJP连接器配置是为了将Tomcat与Apache HTTP Server或Nginx等前端服务器集成以实现负载均衡、反向代理等功能
----------------------------------------------------------------------------------------------------------5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件添加 tomcat 环境变量
修改tomcat1的启动文件
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##最后一行添加
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1修改tomcat1的关闭文件
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
最后一行添加
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1修改tomcat2的启动文件
vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
最后一行添加
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2修改tomcat2的关闭文件
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
最后一行添加
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME26.启动各 tomcat 中的 /bin/startup.sh
启动tomcat1:
cd /usr/local/tomcat/tomcat1/bin/
./startup.sh
启动tomcat2:
cd /usr/local/tomcat/tomcat2/bin/
./startup.sh netstat -natp | grep java7.浏览器访问测试
http://20.0.0.101:8080
http://20.0.0.101:8081----------------------------------------------------------------------------nginxtomcat的负载均衡和动静分离: 动动态页面 静静态页面 简略可以理解为分别可以对静态页面和动态页面发起不同的请求。会有不同的响应结果。 详细讲就是 nginx 反向代理 -----负载均衡---------tomcat是后端服务器-----web静态nginx------静态请求------nginx-------动态页面------tomacat 因为omcat是属于轻量级的应用服务器tomcat并发量能力弱只有nginx的六分之一nginxtomcat的负载均衡和动静分离 Nginx实现负载均衡的主要配置项
upstream 服务池名 { }
作用配置后端服务器池以提供响应数据proxy_pass http:// 服务池名
作用配置将访问请求转发给后端服务器池的服务器处理NginxTomcat负载均衡的组合的优点Nginx 静态处理优势Nginx 处理静态页面的效率远高于Tomcat的处理能力Tomcat的请求量为1000次Nginx 的请求量为6000次Tomcat每秒的吞吐量为0.6MNginx的每秒吞吐量为3.6MNginx处理静态资源的能力是Tomcat 处理的6倍动静分离原理服务端接收来自客户端的请求中既有静态资源也有动态资源静态资源由Nginx 提供服务动态资源由Nginx转发至后端。
nginxtomcat的负载均衡和动静分离配置: 实验共需要三台虚拟机 一台nginx两台tomact其中一台tomcat做多实例部署
第一步部署nginx的负载器
systemctl stop firewalld
setenforce 0systemctl stop firewalld
setenforce 0yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c makeuseradd -M -s /sbin/nologin nginxcd /opt
tar zxvf nginx-1.22.0.tar.gz -C /opt/cd nginx-1.22.0/
./configure \
--prefix/usr/local/nginx \
--usernginx \
--groupnginx \
--with-file-aio \ #启用文件修改支持
--with-http_stub_status_module \ #启用状态统计
--with-http_gzip_static_module \ #启用 gzip静态压缩
--with-http_flv_module \ #启用 flv模块提供对 flv 视频的伪流支持
--with-http_ssl_module \ #启用 SSL模块提供SSL加密功能
--with-stream #启用 stream模块提供4层调./configure \
--prefix/usr/local/nginx \
--usernginx \
--groupnginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-streamtomcat在多实例实验已部署在另一个服务器上再部署一个新的tomcat
搭建tomcat systemctl stop firewalld
setenforce 安装JDK
cd /opt
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
设置JDK环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME/usr/java/jdk1.8.0_201-amd64
export CLASSPATH.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH$JAVA_HOME/bin:$PATHsource /etc/profile.d/java.sh
java -version
安装tomcat
tar zxvf apache-tomcat-9.0.16.tar.gzmv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.shnetstat -ntap | grep 8080
回到tomcat多实例服务器
mkdir -p /usr/local/tomcat/tomcat1/webapps/test
mkdir -p /usr/local/tomcat/tomcat2/webapps/testtomcat1配置
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test1 page/title
/head
body
% out.println(动态页面 1,http://www.test1.com);%
/body
/htmlvim /usr/local/tomcat/tomcat1/conf/server.xml #把前面的host配置删除
Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/tomcat1/webapps/test path reloadabletrue /
/Host/usr/local/tomcat/tomcat1/bin/shutdown.sh
/usr/local/tomcat/tomcat1/bin/startup.sh tomcat2的配置
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test2 page/title
/head
body
% out.println(动态页面 2,http://www.test2.com);%
/body
/htmlvim /usr/local/tomcat/tomcat2/conf/server.xml
Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/tomcat2/webapps/test path reloadabletrue //usr/local/tomcat/tomcat2/bin/shutdown.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
在装有nginx服务的主机上进行配置nginx负载均衡和动静分离
写页面
vim /usr/local/nginx/html/index.html
html
body
h1 this is Nginx static test !/h2
img srcmeinv.jpg/
/body
/html修改配置文件
vim /usr/local/nginx/conf/nginx.conf
......
http {
......#gzip on;#配置负载均衡的服务器列表weight参数表示权重权重越高被分配到的概率越大upstream tomcat_server {server 20.0.0.101:8080 weight1;server 20.0.0.101:8081 weight1;server 20.0.0.102:8080 weight2;}server {listen 80;server_name localhost;charset utf-8;#access_log logs/host.access.log main;#配置Nginx处理动态页面请求将 .jsp文件请求转发到Tomcat 服务器处理location ~ .*\.jsp$ {proxy_pass http://tomcat_server;#设置后端的Web服务器可以获取远程客户端的真实IP#设定后端的Web服务器接收到的请求访问的主机名域名或IP、端口默认HOST的值为proxy_pass指令设置的主机名。如果反向代理服务器不重写该请求头的话那么后端真实服务器在处理时会认为所有的请求都来自反向代理服务器如果后端有防攻击策略的话机器就被封了。proxy_set_header HOST $host;#把$remote_addr赋值给X-Real-IP来获取源IPproxy_set_header X-Real-IP $remote_addr;#在nginx 作为代理服务器时设置的IP列表会把经过的机器ip代理机器ip都记录下来proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#配置Nginx处理静态图片请求location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {root /usr/local/nginx/html;expires 10d;}location / {root html;index index.html index.htm;}
......}
......
}location ~ .*\.jsp$ {proxy_pass http://tomcat_server;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
另一台单实例tomcat配置
cd /usr/local/tomcat/webapps
mkdir test
cd testvim index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test3 page/title
/head
body
% out.println(动态页面 3,http://www.test3.com);%
/body
/htmlcd /usr/local/tomcat/confvim server.xml Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/webapps/test path reloadabletrue /
重启服务
/usr/local/tomcat/bin
./shutdown.sh /usr/local/tomcat/bin
./startup.sh
在装有nginx服务的主机配置静态页面
cd /usr/local/nginx/html
vim index.html
html
body
h1 this is Nginx static test !/h2
img src1.png/
/body
/html
将1.png放入usr/local/nginx/html下访问测试
访问动态资源tomcat 20.0.0.103/index.jsp #nginx的地址来访问
访问静态资源20.0.0.103