Implantação de serviço Tomcat, configuração de host virtual e otimização de parâmetros

Um, visão geral do Tomcat

1.1 Introdução

O servidor Tomcat é um servidor de aplicativos da Web gratuito e de código aberto. É um servidor de aplicativos leve. É comumente usado em sistemas de pequeno e médio porte e onde não há muitos usuários simultâneos. É a primeira escolha para desenvolver e depurar programas JSP . De um modo geral, embora o Tomcat seja igual aos servidores da web Apache ou Nginx, ele tem a função de processar páginas HTML, mas como sua capacidade de processar HTML estático é muito menor do que o Apache ou Nginx, o Tomcat é geralmente usado como um servlet e contêiner JSP , executando a extremidade traseira separadamente.

1.2 Composição do Tomcat

O Tomcat consiste em uma série de componentes, dos quais existem três componentes principais:
(1) Contêiner da Web: completa a função do servidor da Web.
(2) Contêiner Servlet: o nome é catalina, que é usado para processar o código Servlet.
(3) Contêiner JSP: usado para traduzir páginas da Web dinâmicas JSP em código Servlet.

1.2.1 JSP

Java Servlet é um programa executado em um servidor da Web ou servidor de aplicativos. Ele serve como uma camada intermediária entre uma solicitação de um navegador da Web ou outro cliente HTTP e um banco de dados ou aplicativo no servidor HTTP. Usando o Servlet, você pode coletar a entrada do usuário de formulários da web, apresentar registros de bancos de dados ou outras fontes e criar páginas da web dinamicamente. Semelhante à função CGI (Common Gateway Interface).
JSP significa Java Server Pages, que é uma tecnologia dinâmica de desenvolvimento da web. Ele usa tags JSP para inserir código Java em páginas HTML. As tags geralmente começam com <% e terminam com%>.
JSP é um servlet Java, usado principalmente para implementar a parte da interface do usuário de um aplicativo Java da web.
O JSP obtém dados de entrada do usuário por meio de formulários da web, acessa bancos de dados e outras fontes de dados e, a seguir, cria páginas da web de forma dinâmica.

Dois, implantação de serviço Tomcat

2.1 Configuração do servidor Tomcat

O Jdk deve ser instalado antes da implantação do Tomcat, porque o jdk é um ambiente necessário para a execução do Tomcat.

1. Desligue o firewall e carregue os pacotes de software necessários para instalar o Tomcat no diretório / opt

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

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

Insira a descrição da imagem aqui

2. Instale o JDK

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

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

3. Defina as variáveis ​​de ambiente 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

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

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函数.

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

4. Instale e inicie o 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

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

5. Otimize a velocidade de inicialização do tomcat

Na primeira vez que você iniciar o tomcat, poderá descobrir que o Tomcat é muito lento para iniciar. Por padrão, pode levar dezenas de segundos. Você pode modificar o parâmetro jdk para alterá-lo.

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

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

2.2.1.1 Descrição dos diretórios principais

ll /usr/local/tomcat/

Insira a descrição da imagem aqui

● 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 Configuração de host virtual Tomcat

Muitas vezes a empresa tem vários projetos para executar, então certamente é impossível executar vários serviços do Tomcat em um servidor, o que consumirá muitos recursos do sistema. Neste ponto, você precisa usar o host virtual Tomcat. Por exemplo, dois novos nomes de domínio, www.xyw.com e www.abc.com foram adicionados agora, e espera-se que diferentes conteúdos de projeto possam ser acessados ​​por meio desses dois nomes de domínio.

1. Crie diretórios e arquivos de projeto xyw e 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

Insira a descrição da imagem aqui

2. Modifique o arquivo de configuração principal do 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>

Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

3. Verificação de acesso ao navegador do 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\!

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

A configuração padrão na instalação padrão do Tomcat não é adequada para o ambiente de produção. Ele pode frequentemente parecer suspenso e precisa ser reiniciado. Somente por meio de testes de estresse e otimização contínuos ele pode funcionar de forma eficiente e estável.
A otimização inclui principalmente três aspectos: otimização do sistema operacional (otimização dos parâmetros do kernel), otimização dos parâmetros do arquivo de configuração do Tomcat e ajuste da máquina virtual Java (JVM).

Quarto, otimização dos parâmetros do arquivo de configuração do Tomcat

Os parâmetros comumente usados ​​relacionados à otimização são os seguintes:
[maxThreads] Tomcat usa threads para processar cada solicitação recebida. Este valor representa o número máximo de threads que o Tomcat pode criar. O valor padrão é 200.
[MinSpareThreads] O número mínimo de encadeamentos ociosos, o número de encadeamentos inicializados quando o Tomcat inicia, significa que há muitos encadeamentos vazios esperando, mesmo que ninguém esteja usando. O valor padrão é 10
[MaxSpareThreads] O número máximo de encadeamentos sobressalentes. Assim que os encadeamentos criados excederem esse valor, o Tomcat fechará os encadeamentos de soquete que não são mais necessários. O valor padrão é -1 (ilimitado). Geralmente não é necessário especificar.
[URIEncoding] Especifique o formato de codificação de URL do contêiner Tomcat. O formato de codificação de idioma não é tão fácil de configurar quanto outro software de servidor da web e precisa ser especificado separadamente.
[ConnnectionTimeout] Tempo limite de conexão de rede, unidade: milissegundos, definido como 0 significa nunca tempo limite, esta configuração tem perigos ocultos. Normalmente, o padrão é 20.000 milissegundos.
[EnableLookups] Se para reverter a verificação do nome de domínio para retornar o nome do host do host remoto, o valor é: verdadeiro ou falso, se for definido como falso, retornará diretamente o endereço IP, a fim de melhorar a capacidade de processamento , deve ser definido como false.
[disableUploadTimeout] Ao fazer upload Se deve usar um mecanismo de tempo limite. Deve ser definido como verdadeiro.
[Conectar ionUploadTimeout] Tempo limite de upload. O upload do arquivo bijing pode levar mais tempo. Ajuste de acordo com as necessidades de seu negócio para que o Servlet tenha mais tempo para concluir sua execução. Ele precisa ser comparado com o parâmetro anterior. Ele entrará em vigor quando usados ​​juntos.
[AcceptCount] Especifica o comprimento máximo da fila de solicitações de conexão de entrada quando todos os threads disponíveis para solicitações de processamento são usados. As solicitações que excedem este número não serão processadas. O padrão é 100.
[Compressão] Se deve realizar a compressão GZIP nos dados de resposta, desligado: significa que a compressão é proibida: ligado: significa que a compressão é permitida (o texto será compactado), forçar: significa que a compressão é realizada em todos os casos, o valor padrão é desligado, pode ser eficaz após dados compactados. O tamanho da página geralmente pode ser reduzido em cerca de 1/3 para economizar largura de banda.
[CompressionMinsize] indica o valor mínimo da resposta compactada. Somente quando o tamanho da mensagem de resposta for maior que esse valor a mensagem será compactada. Se a função de compactação estiver ativada, o valor padrão é 2048.
[CompressableMimeType] Tipo de compactação, especifique quais tipos de arquivos são compactados.
[NoCompress ionUserAgents = "gozilla, traviata"] Para os navegadores a seguir, não ative a compactação. Os
parâmetros acima são alguns parâmetros de configuração comumente usados ​​e há muitas outras configurações de parâmetro. Você pode continuar a otimizar os parâmetros do Conector HTTP e Conector AJP Valor, você pode consultar a descrição detalhada do documento oficial para aprendizagem.

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"/>

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Acho que você gosta

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