您的位置:首页 > 财经 > 金融 > 泉州网站制作案例_海南工程网站建设_网络推广赚钱_一套完整的运营方案

泉州网站制作案例_海南工程网站建设_网络推广赚钱_一套完整的运营方案

2024/12/23 22:51:13 来源:https://blog.csdn.net/yangfeipancc/article/details/144448519  浏览:    关键词:泉州网站制作案例_海南工程网站建设_网络推广赚钱_一套完整的运营方案
泉州网站制作案例_海南工程网站建设_网络推广赚钱_一套完整的运营方案

Tomcat的概念

Tomcat服务器是Java语言开发的,免费的开放源代码的Web应用服务器。
Tomcat处理静态HTML的能力远不及Apache或者Nginx,通常是作为一个Servlet和JSP容器,单独运行在后端。
Tomcat是由三个功能组合而成:
java servlet:Tomcat是一个servlet容器,负责管理和执行java-servlet,服务端的java程序,处理客户端的http请求后台响应
java server:服务端的配置,pages动态页面的技术就是由Java代码完成的,tomcat既可以作为以java代码为基础的动态页面,也可以处理和转发动态请求。
Tomcat的并发能力很差,仅适用于小项目

Tomcat核心组件

web容器:处理web请求,影响,动态页面的展示
jsp容器:解析index.jsp中java代码转换为servlet的代码,然后servlet编译执行。
jsp是一种技术模板,类似于html语言,允许在html文件当中,嵌入java代码
servler容器:接受web容器的请求,负责加载,初始化,执行和管理
在这里插入图片描述connector:接受外部的请求已经响应请求
container:包含了engine host context webapp四个组件组成
service:包含了connector和container
engine:引擎,用来管理多个虚拟主机,一个service只能有一个engine
host;代表一个虚拟主机,也可以理解为站点
context:对应web应用
wrapps:最终的封装器,容器的最底层,index.jsp

Tomcat的安装

安装java

apt -y install openjdk-8-jdk-headless

把apache-tomcat安装包放到opt目录下并解压
重命名为tomcat并移到/usr/local/目录下

tomcat目录下的内容:
bin:启动和关闭脚本文件
conf:tomcat的配置文件
logs:tomcat的日志文件
webapps:保存不同项目的应用目录
work:工作目录
temp:临时文件保存目录

切换到/usr/local/bin目录下,执行
./startup.sh
#开启tomcat
netstat -antp | grep 8080
#查看端口是否正常启动

在浏览器上输入对应的网址加上8080端口,查看网页是否正常
在这里插入图片描述

配置多台虚拟主机

cd /usr/local/tomcat/webapps
mkdir test1 test2
cd test1/
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出
cd ../test2
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host><Host name="www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" /></Host>保存退出
cd ../conf
./startup.sh
vim /etc/hosts192.168.42.20 www.test1.com www.test2.com保存退出

www.test1.com域名
在这里插入图片描述
www.test2.com域名
在这里插入图片描述

Tomcat的优化和动静分离

Tomcat的优化

默认的安装情况下,tomcat经常会假死的情况,所以tomcat需要进行优化
优化的三个方面
1、tomcat的配置优化
2、操作系统的内核优化
3、jvm调优

tomcat的配置优化

在tomcat的配置文件的第69<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxThreads="500"minSpareThreads="50"enableLookkups="false"disableUpploadTimeout="true"acceptCount="300"processorCache="500"URIEncoding="UTF-8"compression="on"compressionMinSize="2048"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"/>

8080: tomcat对外提供访问的默认端口
protocol: 默认的协议就是http/1.1
connectionTimeout:连接的超时时间 20000毫秒=20秒

redirectPort:如果是https,自动转到8843,为https协议服务的

maxThreads=“500” :tomcat可以创建最大的线程数

minSpareThreads=“50”:空闲线程的最小数量,用来处理溢出部分的请求

enableLookkups=“false”:禁用反向解析,提高访问速度

disableUpploadTimeout=“true”:开启上传的超时时间,连接在上传期间不存在超时的情况

acceptCount=“300”:当线程都在忙碌的时候,可以排队等待处理的请求数量

processorCache=“500”:连接器可以缓存的最大处理的数量

URIEncoding=“UTF-8”:设置字符集编码

compression=“on”:开启响应内容的压缩功能

compressionMinSize=“2048”:如果文件大小超过2M(2048KB),才会进行压缩。
compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png”:支持被压缩的文件类型,包括HTML、XML、JavaScript、CSS、纯文本、GIF图像、JPEG图像和PNG图像。

在网页浏览tomcat的配置
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml第20行
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />改成
allow=.*/>
vim /usr/local/tomcat/conf/tomcat-user.xml
第22<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

可以在网页上查看tomcat的配置
在这里插入图片描述
在这里插入图片描述

操作系统的内核优化

在/etc/sysctl.conf文件配置操作系统的内核优化
net.ipv4.ip_forward=0 #开启服务数据的路由功能
net.ipv4.tcp_syncookies=1 #启动SYN cookies功能,避免tcp SYN的攻击
net.ipv4.tcp_max_tw_buckets=6000 #系统中允许出现的最大的time_wait的数量
net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_tw_reuse:#启用TIME_WAIT套接字快速回收和重用。
vm.overcommit_memory=0:#控制内存超额分配策略,避免OOM killer杀掉进程。
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_window_scaling=1:#启用TCP窗口缩放功能,允许大窗口的TCP传输。
net.ipv4.conf.default.accept_source_route:#不接受源路由,增加网络安全性。
kernel.sysrq=0:#禁用了内核的SysRq功能,SysRq允许在系统崩溃或出现问题时执行一些调试操作。
kernel.core_uses_pid=1:#设置核心转储文件名中包含进程ID,有助于标识是哪个进程导致了核心转储。
kernel.msgmnb 和 kernel.msgmax:#增加IPC消息队列的默认和最大大小,用于进程间通信。
kernel.shmmax 和 kernel.shmall:#调整共享内存的最大大小和分配页面数。

jvm优化

vim /usr/local/tomcat/bin/catalina.sh
第119行
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads=2 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -Djava.awt.headless=true -XX:+DisableExplicitGC"
解析
$JAVA_OPTS -server jvm服务端的优化:
-Xms2048m:设置JVM分配的最小内存为2048MB。
-Xmx2048m:设置JVM分配的最大内存为2048MB。
24G:设置成的内存
官方建议,初始大小核最大值设置成一样的值,一般是物理内存大小的一般
-Xmn768m:设置新生代的内存大小为768,建议设置成整个堆内存大小的3/8
-XX:ParallelGCThreads=2:设置资源回收器的线程数量是2
-XX:MetaspaceSize=128m:设置元空间的初始大小
-XX:MaxMetaspaceSize=512m:设置元空间的最大值,元:都是保存数据的核心信息
-Djava.awt.headless=true :启用无图形界面的模式,防止在linux系统下,web页面无法正常显示图片
-XX:+DisableExplicitGC:垃圾回收机制的信息在后台显示

在这里插入图片描述
内存匹配改变
在这里插入图片描述

在这里插入图片描述
Eden Space: 堆内存 用来存储新创建的对象,这一部分的是完全分配给新创建的对象使用

G1 Old Gen:堆内存 存储的是长时间活动的对象

Survivor Space :堆内存,存储中中生代的对象

CodeHeap ‘non-nmethods’:非堆内存,存储已经编译的代码

CodeHeap ‘non-profiled nmethods‘:非堆内存,已经被压缩的类定义

CodeHeap ‘profiled nmethods’:非堆内存当中的元数据信息

Compressed Class Space:存储已压缩的类定义

Metaspace:元数据空间的大小
在这里插入图片描述
ajp:ajp是一种协议,ajp协议:是tomcat服务端和前端的服务器进行连接的协议

作用:提供负载均衡和高效请求的转发

nio:nio技术:异步非阻塞通信

和前端服务器通信的端口是8009

Tomcat的动静分离

nginx1服务器
vim nginx.confupstream tomcat {server 192.168.42.30:8080 weight=3;server 192.168.42.40:8080 weight=2;}...location ~* \. jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header HOST $host;#设定后端服务器收到的请求访问的主机名,域名,ip端口。默认的proxy_pass#指定的主机名,是代理的主机名,不是客户端的真实主机名	}保存退出systemctl  restart nginx
tomcat第一台
cd /usr/local/tomcat/webapps
mkdir test1 
cd test1/
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host>
tomcat第二台
cd ../test2
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 2,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" /></Host>保存退出
cd ../conf
./startup.sh

在这里插入图片描述
在这里插入图片描述
按照以下配置配置出tomcat的动静分离
客户端: 浏览器

nginx1: 调度器 192.168.42.20

nginx2 静态页面 192.168.42.30

nginx3 静态页面 192.168.42.40

tomcat1: 后端服务器1 动态 192.168.42.21

tomcat2: 后端服务器2 动态 192.168.42.22

调度器
cd /usr/local/nginx/conf
vim nginx.donf#全局stream {upstream xy104 {server 192.168.42.30:80;server 192.168.42.40:80;}server {listen 81;proxy_pass xy104;}}保存退出
systemctl restart nginxnginx2的配置
cd  /usr/local/nginx/html
vim index.htmlthis is xy104保存退出
cd ../conf
vim nginx.conf#http模块upstream tomcat {server 192.168.42.21:8080;server 192.168.42.22:8080;}#server模块server {....keepalive_timeout 0;location ~* \.jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded-for;proxy_set_header Host $host;}....}保存退出
systemctl  restart nginxnginx3的配置
cd /usr/local/nginx/html
vim index.htmlthis is xy105保存退出
cd ../conf
vim nginx.conf
#http模块upstream tomcat {server 192.168.42.21:8080;server 192.168.42.22:8080;}#server模块server {....keepalive_timeout 0;location ~* \.jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded-for;proxy_set_header Host $host;}....}保存退出
systemctl restart nginxtomcat1的配置cd /usr/local/tomcat/webappsmkdir test1cd test1/vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host>
cd ../bin
./shutdown.sh
./startup.shtomcat2的配置cd /usr/local/tomcat/webappsmkdir test2cd test2/vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 2,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" />
</Host>
cd ../bin
./shutdown.sh
./startup.sh

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com