Implementación del servicio Tomcat, configuración de host virtual y optimización de parámetros

Uno, descripción general de Tomcat

1.1 Introducción

El servidor Tomcat es un servidor de aplicaciones web gratuito y de código abierto. Es un servidor de aplicaciones liviano. Se usa comúnmente en sistemas pequeños y medianos y donde no hay muchos usuarios concurrentes. Es la primera opción para desarrollar y depurar programas JSP . En términos generales, aunque Tomcat es lo mismo que los servidores web Apache o Nginx, tiene la función de procesar páginas HTML, pero debido a que su capacidad para procesar HTML estático es mucho menor que Apache o Nginx, Tomcat se usa generalmente como un contenedor de Servlet y JSP. , corriendo por separado la parte trasera.

1.2 Composición de Tomcat

Tomcat consta de una serie de componentes, de los cuales hay tres componentes centrales:
(1) Contenedor web: completa la función del servidor web.
(2) Contenedor de servlet: el nombre es catalina, que se utiliza para procesar el código de servlet.
(3) Contenedor JSP: se utiliza para traducir páginas web dinámicas JSP en código Servlet.

1.2.1 JSP

Java Servlet es un programa que se ejecuta en un servidor web o un servidor de aplicaciones y sirve como una capa intermedia entre una solicitud de un navegador web u otro cliente HTTP y una base de datos o aplicación en el servidor HTTP. Con Servlet, puede recopilar información de usuario de formularios web, presentar registros de bases de datos u otras fuentes y crear páginas web de forma dinámica. Similar a la función CGI (Common Gateway Interface).
JSP son las siglas de Java Server Pages, que es una tecnología de desarrollo web dinámica. Utiliza etiquetas JSP para insertar código Java en páginas HTML. Las etiquetas suelen comenzar con <% y terminar con%>.
JSP es un servlet de Java, que se utiliza principalmente para implementar la parte de la interfaz de usuario de una aplicación web Java.
JSP obtiene datos de entrada del usuario a través de formularios web, accede a bases de datos y otras fuentes de datos, y luego crea páginas web de forma dinámica.

Dos, implementación del servicio Tomcat

2.1 Configuración del servidor Tomcat

Jdk debe instalarse antes de implementar Tomcat, porque jdk es un entorno necesario para que Tomcat se ejecute.

1. Apague el firewall y cargue los paquetes de software necesarios para instalar Tomcat en el directorio / opt.

jdk-8u201-linux-x64.rpm
apache-tomcat-9.0.16.tar.gz

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

Inserte la descripción de la imagen aquí

2. Instale JDK

cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm      检查软件包的工作目录
rpm -ivh jdk-8u201-linux-x64.rpm
java -version

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Configure las variables de entorno de JDK

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64		#输出定义Java的工作目录
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar	 #输出指定Java所需的类文件					
export PATH=$JAVA_HOME/bin:$PATH		#输出重新定义环境变量,$PATH一定要放在$Java后面,让系统先读取工作目录中的版本信息

source /etc/profile.d/java.sh
java -version

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

CLASSPATH:编译、运行Java程序时,JRE 会去该变量指定的路径中搜索所需的类(.class) 文件。
dt.jar:是关于运行环境的类库,主要是swing 的包。
tools.jar:主要是一些jdk. 工具的类库,包括javac, java, javap,javadoc等。
JDK:java development kit ( java开发工具)
JRE:java runtime envi ronment (java运行时环境)
JVM:java virtuak machine ( java虚拟机),使java程序可以在多种平台上运行class文件。
vim abc.java

public class abc {
    
    
public static void main(String[] args){
    
    
System.out.println("Hello world!");
   }
}

javac abc.java
java abc



javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Instale e inicie Tomcat

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##启动tomcat ##
/usr/local/tomcat/bin/startup.sh
netstat -natp | grep 8080

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

浏览器访问Tomcat的默认主页http://192. 168.238.40:8080

Inserte la descripción de la imagen aquí

5. Optimizar la velocidad de inicio de Tomcat

La primera vez que inicie Tomcat, es posible que el inicio de Tomcat sea muy lento. De forma predeterminada, puede tardar decenas de segundos. Puede modificar el parámetro jdk para cambiarlo.

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security 
--117行--修改
securerandom.source=file:/dev/urandom    	#random和urandom都属于伪终端,都会提供和数据流,但urandom速度更快
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2.2.1.1 Descripción de los directorios principales

ll /usr/local/tomcat/

Inserte la descripción de la imagen aquí

● bin:存放启动和关闭Tomcat 的脚本文件,比较常用的是catalina.sh、 startup.sh、 shutdown.sh 三个文件
● conf:存放Tomcat 服务器的各种配置文件,比较常用的是server. xml、 context. xml、tomcat-users. xml、web. xml四个文件。
● lib:存放Tomcat 服务器的jar包,一般不作任何改动,除非连接第三方服务,比如redis, 那就需要添加相对应的jar包
● logs:存放Tomcat 日志
● temp:存放Tomcat运行时产生的文件
● webapps:存放项目资源的目录
● work:Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

2.3 Configuración del host virtual Tomcat

Muchas veces, la empresa tiene varios proyectos para ejecutar, por lo que es ciertamente imposible ejecutar varios servicios Tomcat en un servidor, lo que consumirá demasiados recursos del sistema. En este punto, debe utilizar el host virtual Tomcat. Por ejemplo, ahora se agregan dos nuevos nombres de dominio, www.xyw.com y www.abc.com, y se espera que se pueda acceder a diferentes contenidos del proyecto a través de estos dos nombres de dominio.

1. Cree directorios y archivos de proyectos xyw y abc

mkdir /usr/local/tomcat/webapps/xyw
mkdir /usr/ local/ tomcat/ webapps/abc
echo "This is xyw page\!" > /usr/local/tomcat/webapps/xyw/index.jsp
echo "This is abc page\!" > /usr/local/tomcat/webapps/abc/index.jsp

Inserte la descripción de la imagen aquí

2. Modifique el archivo de configuración principal de Tomcat.

vim /usr/local/tomcat/conf/server.xml
--165行前--插入
<Host name="www.xyw.com" appBase= "webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/xyw" path="" reloadable="true" />
</Host>

<Host name="wwW.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/abc" path="" reloadable="true" />
</Host>

Inserte la descripción de la imagen aquí

Host name:主机名
appBase:Tomcat程序工作目录,相对路径为webapps,绝对路径为/usr/local/tomcat/webapps
unpackWARs:是否解压war包
autoDeploy:指示Tomcat运行时,如有新的WEB应用是否允许自动部署
xmlValidation:是否验证xml文件执行有效性检验的标志
xmlNamespaceAware:是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验
docBase:WEB应用的目录
path:设置访问的URI为WEB应用的根目录
reloadable:是否在程序有改动时重新载入
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

Inserte la descripción de la imagen aquí

3. Verificación del acceso al navegador del cliente

echo "192.168.238.50 www.xyw.com www.abc.com" >> /etc/hosts

浏览器访问http://www.xyw.com:8080
页面显示This is xyw page\!
浏览器访问http://www.abc.com:8080
页面显示This is abc page\!

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

La configuración predeterminada de la instalación predeterminada de Tomcat no es adecuada para el entorno de producción. Con frecuencia puede parecer suspendida y debe reiniciarse. Solo mediante pruebas de esfuerzo y optimización continuas puede ejecutarse de manera eficiente y estable.
La optimización incluye principalmente tres aspectos: optimización del sistema operativo (optimización de los parámetros del kernel), optimización de los parámetros del archivo de configuración de Tomcat y ajuste de la máquina virtual Java (JVM).

Cuarto, optimización de parámetros del archivo de configuración de Tomcat

Los parámetros relacionados con la optimización más utilizados son los siguientes:
[maxThreads] Tomcat usa subprocesos para procesar cada solicitud recibida. Este valor representa el número máximo de subprocesos que puede crear Tomcat. El valor predeterminado es 200.
[MinSpareThreads] El número mínimo de subprocesos inactivos, el número de subprocesos inicializados cuando se inicia Tomcat, significa que hay tantos subprocesos vacíos esperando incluso si nadie lo está usando. El valor predeterminado es 10.
[MaxSpareThreads] La cantidad máxima de subprocesos libres. Una vez que los subprocesos creados superan este valor, Tomcat cerrará los subprocesos de socket que ya no sean necesarios. El valor predeterminado es -1 (ilimitado). Generalmente no es necesario especificar.
[URIEncoding] Especifique el formato de codificación de URL del contenedor Tomcat. El formato de codificación de idioma no es tan fácil de configurar como otro software de servidor web y debe especificarse por separado.
[ConnnectionTimeout] Tiempo de espera de conexión de red, unidad: milisegundos, establecido en 0 significa que nunca se agota el tiempo de espera, esta configuración tiene peligros ocultos. Por lo general, el valor predeterminado es 20000 milisegundos.
[EnableLookups] Ya sea para revertir la verificación del nombre de dominio para devolver el nombre de host del host remoto, el valor es: verdadero o falso, si se establece en falso, devolverá directamente la dirección IP, para mejorar la capacidad de procesamiento , debe establecerse en falso.
[disableUploadTimeout] Al cargar Si se debe usar un mecanismo de tiempo de espera. Debería establecerse en verdadero.
[Connect ionUploadTimeout] Tiempo de espera de carga. La carga del archivo Bijing puede llevar más tiempo. Ajústelo de acuerdo con sus necesidades comerciales para que el servlet tenga más tiempo para completar su ejecución. Debe compararse con el parámetro anterior. Se hará efectivo cuando se usan juntos.
[AcceptCount] Especifica la longitud máxima de la cola de las solicitudes de conexión entrantes cuando se utilizan todos los subprocesos disponibles para procesar las solicitudes. Las solicitudes que superen este número no se procesarán. El valor predeterminado es 100.
[Compresión] Ya sea para realizar compresión GZIP en los datos de respuesta, apagado: significa que la compresión está prohibida: encendido: significa que se permite la compresión (el texto se comprimirá), forzado: significa que la compresión se lleva a cabo en todos los casos, el valor predeterminado es apagado puede ser efectivo después de datos comprimidos. El tamaño de la página generalmente se puede reducir en aproximadamente 1/3 para ahorrar ancho de banda.
[CompressionMinsize] indica el valor mínimo de la respuesta comprimida. Solo cuando el tamaño del mensaje de respuesta sea mayor que este valor, el mensaje se comprimirá. Si la función de compresión está habilitada, el valor predeterminado es 2048.
[CompressableMimeType] Tipo de compresión, especifique qué tipos de archivos se comprimen.
[NoCompress ionUserAgents = "gozilla, traviata"] Para los siguientes navegadores, no habilite la compresión. Los
anteriores son algunos de los parámetros de configuración de uso común y hay muchas otras configuraciones de parámetros. Puede continuar optimizando los parámetros de HTTP Connector y AJP Connector .Valor, puede consultar la descripción detallada del documento oficial para el aprendizaje.

vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
--71行--插入
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
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"/>

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/IvyXYW/article/details/112665002
Recomendado
Clasificación