Apache - Otimização da página da Web - Teoria + Explicação detalhada experimental - Compressão da página da Web, configurar o tempo do cache da página da Web, ocultar informações da versão e configurar a cadeia antifurto


1. Otimização da página da web do Apache

1. Visão Geral

  • Nas empresas, apenas os parâmetros de configuração padrão são usados ​​após a implantação do Apache, o que causará muitos problemas para o site da Web. Em outras palavras, a configuração padrão é para a configuração anterior de baixo servidor, e a configuração anterior não é mais adequada para a era da Internet atual.
  • Para atender às necessidades das empresas, é necessário considerar como melhorar o desempenho e a estabilidade do Apache. Este é o conteúdo da otimização do Apache

2. Otimize o conteúdo

  • Configure a função de compressão da página da web para aumentar a taxa de acesso
  • Configure o cache da página da web para reduzir a simultaneidade
  • Seleção do modo de trabalho e otimização dos parâmetros
  • Configure o número da versão oculta
  • Configurar anti-sanguessuga

3. introdução gzip

  • Configure a função de compressão da página da web do Apache para usar o algoritmo de compressão gzip para comprimir o conteúdo da página da web e, em seguida, transmiti-lo para o navegador do cliente
  • Transmitir após compressão, reduzindo o número de bytes transmitidos pela rede, agilizando o carregamento das páginas da web
  • Ele também pode economizar tráfego e melhorar a experiência de navegação do usuário
  • gzip tem um relacionamento melhor com rastreadores de mecanismos de pesquisa

4. Módulo de compressão Apache

  1. Os módulos funcionais do Apache para compressão de páginas da web incluem:
    -mod_gzip module
    -mod_deflate module
  1. O Apache 1.x
    não tem tecnologia de compressão de página da web integrada, mas pode usar o módulo mod_gzip de terceiros para realizar a compressão

Foi eliminado

  1. Quando o Apache 2.x
    foi desenvolvido, o módulo mod_deflate foi construído para substituir o mod_gzip
  1. O módulo mod_gzip e o módulo mod_deflate
    usam o algoritmo de compressão gzip e o princípio de operação é semelhante

A velocidade de compressão do mod_gzip é um pouco mais rápida, enquanto a taxa de compressão do mod_gzip é um pouco maior

Mod_gzip ocupa mais cpu do servidor

Para servidores de alto tráfego, usar mod_deflate pode carregar mais rápido do que mod_gzip

5. Configure a compressão da página da web

5.1 Verifique se o módulo mod_deflate está instalado

apachectl -t -D DUMP_MODULES | grep "deflate"

5.2 Se não estiver instalado, recompile e instale o Apache e adicione o módulo

cd /usr/local/httpd/conf/
mv httpd.conf httpd.conf.bak1
systemctl stop httpd.service

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate    #加入mod_deflate模块

make -j 4 
make install

5.3 Configurar a ativação do módulo mod_deflate

vim /usr/local/httpd/conf/httpd.conf

--52行--修改
Listen 192.168.126.11:80
--105行--取消注释
LoadModule deflate_module modules/mod_deflate.so        ##开启mod_deflate模块
--197行--取消注释,修改
ServerName www.xcf.com:80

--末行添加--
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
#代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9
#代表压缩级别,范围为1~9
SetOutputFilter DEFLATE
#代表启用deflate模块对本站点的输出进行gzip压缩
</IfModule>

5.4 Verifique a instalação e inicie o serviço

apachectl -t
#验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate"
#检查模切模块是否已安装
 deflate_module (shared)

Systemctl start httpd.service

marca

5.5 Teste se a compressão mod_deflate tem efeito

cd /usr/local/httpd/htdocs
#先上传一张图传到/usr/local/httpd/htdocs目录下,Xshell直接拖进去即可

vim index.html 

<html><body><h1>30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!!</h1>
<img src= "zxc123.jpg"/>
</body></html>


systemctl restart httpd.service

echo "192.168.126.11 www.xcf.com" >> /etc/hosts

vim /etc/resolv.conf
nameserver 192.168.126.11

marca

Abra o navegador para acessar o
marca
marca
Método 1:
No sistema Linux, abra o navegador Firefox, clique com o botão direito e clique para visualizar o elemento.
Selecione Rede—> Selecionar HTML, WS. Outro
acesso http://192.168.126.11, clique duas vezes na mensagem de resposta 200 para visualizar o cabeçalho da resposta Contém Conteúdo - Codificação: gzip
marca

Método 2:
Instale o software Fiddler no sistema Windows e abra o software Fiddler.
Selecione inspetores -> selecione o
navegador Cabeçalhos para visitar http://192.168.126.11, clique duas vezes na mensagem de resposta 200 para visualizar Codificação de Conteúdo: gzip

Instale ferramentas no virtual win10, arraste o software diretamente para ele, clique duas vezes para instalar, clique em iniciar, clique no programa para
abrir, atualizamos a interface do navegador duas vezes e, em seguida, retornamos ao software para visualizar
marca
marca

6. Configure o tempo de cache das páginas da web

  • Configure o apache através do módulo de configuração do módulo mod_expire, para que a página da web possa ser armazenada em cache no navegador do cliente por um período de tempo para evitar solicitações repetidas
  • Depois que o módulo mod_expire for ativado, a tag Expires e a tag Cache-Control nas informações do cabeçalho da página serão geradas automaticamente. O navegador do cliente decide com base na tag que a próxima visita é obter a página no cache da máquina local sem fazer outra solicitação ao servidor. Reduzir a frequência e o número de visitas do cliente para atingir o objetivo de reduzir o tráfego desnecessário e aumentar a velocidade de acesso

6.1 Verifique se o módulo mod_expires está instalado

apachectl -t -D DUMP_MODULES | grep "expires"

6.2 Se o módulo mod_ expires não estiver instalado, recompile e instale o Apache e adicione o módulo mod_ expires

systemctl stop httpd.service

cd /usr/local/httpd/conf
mv httpd.conf{
    
    ,.bak2}

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires
#加入mod_ expires模块

make -j 4
make install

6.3 Configurar a ativação do módulo mod_expires

vim /usr/local/httpd/conf/httpd.conf

--52行--修改
Listen 192.168.126.11:80
--111行- -取消注释
LoadModule expires_ module modules/mod_expires.so
#开启mod_expires模块
--199行--取消注释并修改
ServerName www.xcf.com:80
--末行添加--
<IfModule mod_expires.c>
  ExpiresActive On
  #打开网页缓存功能
  ExpiresDefault "access plus 60 seconds"
  #设置缓存60秒
</IfModule>

6.4 Verifique a instalação e inicie o serviço

apachectl -t
#验证配置文件的配置是否正确

apachectl -t -D DUMP_MODULES | grep "expires"
#检查mod_ deflate模块是否已安装 
  deflate_module (shared)
  #已安装的正确结果

systemctl restart httpd.service

marca

6.5 Teste se o cache é eficaz

cat /usr/local/httpd/htdocs/index.html

Método 1:
No sistema Linux, abra o navegador Firefox, clique com o botão direito e clique para ver os elementos.
Selecione Rede -> selecione HTML, WS e outros.
Visite http://192.168.126.11 e clique duas vezes na mensagem 200 para ver o item Expires no cabeçalho da resposta
marca

Método 2:
instale o Microsoft.NET4 e o software fiddler no sistema Windows, por sua vez, abra o software fiddler,
selecione os inspetores -> selecione o
navegador de cabeçalhos para visitar http://192.168.126.11, clique duas vezes na mensagem 200 para visualizar o item Expira
marca


2. Otimização de segurança Apache

1. Ocultar informações de versão

  • A informação da versão do Apache revela certas informações de vulnerabilidade, o que traz riscos de segurança para o site
  • Configure o Apache para ocultar informações de versão no ambiente de produção

As informações da versão podem ser vistas no experimento anterior, que é: 2.4.29 (Unix)
marca

vim /usr/local/httpd/conf/httpd.conf
-- 491行--取消注释
Include conf/extra/httpd-default.conf

vim /usr/local/httpd/conf/extra/httpd-default.conf
--55行--修改
ServerTokens Prod
#将原本的 Full 改为 Prod,将只显示名称,没有版本
#ServerTokens 表示 Server 回送给客户端的响应头域是否包含关于服务器 OS 类型和编译过的模块描述信息

systemctl restart httpd.service

浏览器访问http://192.168.126.11,双击200消息查看 Server 项

Você pode ver que as informações da versão foram ocultadas com sucesso e também podemos falsificá-las e continuar a aprender mais tarde ~
marca

2. Anti-sanguessuga

  • O anti-hotlinking evita que os códigos de outros sites desviem imagens, arquivos, vídeos e outros recursos relacionados em nossos próprios servidores
  • Se outros desviarem esses recursos estáticos do site, obviamente aumentará a pressão de largura de banda de nosso servidor
  • É equivalente a prostituição direta, acessando a mesma coisa, para que seu site seja acessado, mas os recursos do nosso servidor sejam utilizados
  • Como mantenedores do site, devemos evitar que os recursos estáticos do servidor sejam desviados por outros sites

Configurar uma máquina virtual hotlink

Ligue outro host de hotlink como uma "prostituição branca" e use o servidor sem um host anti-sanguessuga para acessar a página da web

#安装httpd服务
yum -y install httpd
systemctl start httpd

#配置临时dns映射
echo "192.168.126.11 www.xcf.com" >>/etc/hosts
echo "192.168.126.12 www.zxc.com" >>/etc/hosts

Editar a página inicial do site de hospedagem na web

vim /var/www/html/index.html
<html><body><h1>30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!30bian!!</h1>
<img src= "http://www.xcf.com/zxc123.jpg"/>
</body></html>

systemctl restart httpd.service

marca

Use o acesso ao nome de domínio local
marca

2.2 Configurar anti-sanguessuga

2.2.1 Verifique se o módulo mod_rewrite está instalado

apachectl -t -D DUMP_MODULES | grep "rewrite"

2.2.2 Se o módulo mod_rewrite não estiver instalado, recompile e instale o Apache para adicionar o módulo mod_ rewrite

systemctl stop httpd.service
cd /usr/local/httpd/conf/
mv httpd.conf{
    
    ,.bak3}

yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel

cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-deflate \
--enable-expires

make -j 4
make install

2.2.3 Configurar a ativação do módulo mod_rewrite

vim /usr/local/httpd/conf/httpd.conf
--157行--取消注释
LoadModule rewrite_module modules/mod_rewrite.so
--224行--
<Directory "/usr/local/httpd/htdocs">
    
    Options Indexes FollowSymLinks
    
    AllowOverride None
    
    Require all granted
    
    #打开 rewrite功能,加入 mode_rewrite 模板内容
    RewriteEngine On
    
    RewriteCond %{
    
    HTTP_REFERER} !^http://xcf.com/.*$ [NC]               #设置匹配规则
    RewriteCond %{
    
    HTTP_REFERER} !^http://xcf.com$ [NC]
    RewriteCond %{
    
    HTTP_REFERER} !^http://www.xcf.com/.*$ [NC]
    RewriteCond %{
    
    HTTP_REFERER} !^http://www.xcf.com/$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.xcf.com/error.png         #设置跳转动作
</Directory>
RewriteCond %{
    
    HTTP_REFERER} !^http://www.chenweicom/.$ [NC] 的字段含义:
“%{
    
    HTTP_REFERER}” :存放一个链接的 URL,表示从哪个链接访问所需的网页。
“!^” :表示不以后面的字符串开头。
“http://www.chenwei.com” :是本网站的路径,按整个字符串匹配。
“.$” :表示以任意字符结尾。
“[NC]” :表示不区分大小写字母。

RewriteRule ..(gif|jpg|swf)$ http://www.chenwei.com/error.png 的字段含义:
“.” :表示匹配一个字符。
“” :表示匹配 0 到多个字符,与“.”合起来的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
“.” :在这里的“\”是转义符,“.”就代表符号“.”的意思。因为“.”在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个转义符“\”,其它规则字符如果需要匹配,也做同样处理。
“(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一个,“$”表示结束。最后的规则是以“.gif”、“.jpg”、“.swf”结尾, 前面是1到多个字符的字符串,也就是匹配图片类型的文件。
“http://www.chenwei.com/error.png” :表示转发到这个路径 。

整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时,显示 error.png 这个图片

marca

2.2.4 Preparação da página da web

cd /usr/local/httpd/htdocs

#将error.png文件(这里自己可以挑一张png格式的图片,Xshell拖进去即可)
传到/usr/local/httpd/htdocs目录下

2.2.5 Tente acessar novamente no host de hotlink

marca

Acho que você gosta

Origin blog.csdn.net/weixin_51486343/article/details/112327566
Recomendado
Clasificación