Optimización de la página web de Apache, explicación detallada de gráficos y texto para perder la cabeza (incluida la compresión de la página web, almacenamiento en caché, información de versión oculta, anti-sanguijuela)

Optimización web Apache

Directorio de artículos

1. Descripción general de la optimización de la página web de Apache

En una empresa, solo se utilizan los parámetros de configuración predeterminados después de la implementación de Apache, lo que causará muchos problemas para el sitio web. En otras palabras, la configuración predeterminada es para la configuración del servidor anteriormente baja. La configuración anterior ya no es aplicable en la configuración actual Era de Internet.
Para adaptarse a las necesidades de las empresas, debe considerar Cómo mejorar el rendimiento y la estabilidad de Apache, este es el contenido de la optimización de Apache

1. Optimiza el contenido

  • Configurar la compresión de la página web
  • Configurar la caché web
  • Selección de modo de trabajo y optimización de parámetros.
  • Configurar el número de versión oculto
  • Configurar anti-sanguijuelas
    ...

2.Introducción gzip

Configure la función de compresión de páginas web de Apache, que utiliza el algoritmo de compresión gzip para comprimir el contenido de la página web antes de transmitirlo al navegador del cliente.

  • efecto:

Reduce la cantidad de bytes transmitidos a través de la red, acelera la carga de páginas web,
ahorra tráfico y mejora la experiencia de navegación del usuario.
Gzip tiene una mejor relación con las herramientas de rastreo de motores de búsqueda.

3. Módulo de compresión de Apache

1) Los módulos funcionales de Apache para la compresión de páginas web incluyen

módulo mod_ gzip

mod_ deflate módulo

2) Apache 1.x

No hay tecnología de compresión de páginas web incorporada, pero el módulo mod_ gzip de terceros se puede utilizar para realizar la compresión

3) Apache 2.x

Durante el desarrollo, el módulo mod_deflate está integrado en lugar de mod_ gzip

Módulo 4.mod_gzip y módulo mod_deflate

  • Ambos usan el algoritmo de compresión gzip y el principio de funcionamiento es similar
  • La velocidad de compresión mod_deflate es ligeramente más rápida, mientras que la relación de compresión mod_gzip es ligeramente superior
  • mod_gzip ocupa una CPU más alta en el servidor
  • Para servidores de alto tráfico, el uso de mod_deflate puede cargar más rápido que mod_ gzip

5. Configure el tiempo de caché de las páginas web.

Configure Apache a través del módulo mod_ expire para permitir que las páginas web se almacenen en caché en el navegador del cliente durante un período de tiempo para evitar solicitudes repetidas.
Después de habilitar el módulo mod_ expire, la etiqueta Expires y la etiqueta Cache-Control en la información del encabezado de la página Ser generado automáticamente, reduciendo así la Frecuencia del cliente y el número de visitas para lograr el propósito de reducir el tráfico innecesario y aumentar la velocidad de acceso.

2. Configuración de compresión de páginas web

Propósito experimental
Configurar la página web para habilitar la función de compresión de la página web

1. Primero apague el cortafuegos y el cortafuegos selinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

Inserte la descripción de la imagen aquí

2. Compruebe si el módulo mod_ deflate está instalado

No se mostrará nada si no está instalado

apachectl -t -D DUMP_MODULES | grep "deflate"

3. Elimine o cambie el nombre del archivo de configuración de Apache anterior.

cd /usr/local/httpd/conf
ls
mv httpd.conf httpd.conf.bak1

Inserte la descripción de la imagen aquí

4. Si el módulo mod_deflate no está instalado, recompile e instale Apache para agregar el módulo mod_deflate

#重新编译安装需要先将服务关闭
systemctl stop httpd.service
#使用该命令查看是否关闭成功
systemctl status 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 && make install #重新编译安装会生成新的httpd配置文件

Inserte la descripción de la imagen aquí

5. Configure el módulo mod_deflate para habilitar

vim /usr/local/httpd/conf/httpd.conf
-------52行修改------------------
Listen 192.168.12.8:80
-------105行取消注释--------------
LoadModule deflate_module modules/mod_deflate.so		#开启mod_deflate 模块
-------198行取消注释并修改---------
ServerName www.mhh.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>

Inserte la descripción de la imagen aquí

6. Verifique la instalación e inicie el servicio

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

systemctl start httpd.service

Inserte la descripción de la imagen aquí

7. Pruebe si el módulo de compresión es efectivo (dos métodos para verificar)

cd /usr/local/httpd/htdocs

Cambie al directorio / usr / local / httpd / htdocs y arrastre la imagen a xshell

Inserte la descripción de la imagen aquí

ls Vea el archivo de imagen existente y el archivo de la página de inicio index.html en el directorio y edite el archivo de la página de inicio de la siguiente manera

Inserte la descripción de la imagen aquí

vim index.html

<meta charset="utf-8">
<html><body><h1>
I am going to live every minute of it.</h1>
<img src="心灵奇旅.png"/>
</body></html>

systemctl restart httpd.service

Método 1:
En el sistema Linux de la máquina virtual, abra el navegador Firefox, haga clic con el botón derecho y haga clic para ver el elemento.
Seleccione Red → Recargar → Seleccione HTML, WS, Otros para
visitar http://192.168.2.8 y verifique que el encabezado de respuesta contiene Content-Encoding: gzip
ingresa a la máquina virtual para verificación

Inserte la descripción de la imagen aquí

Mire el encabezado de respuesta y descubra que contiene un módulo de compresión

Inserte la descripción de la imagen aquí

Método 2:
instale Microsoft.NET4 y el software fiddler en el sistema Windows de la máquina virtual, abra el software fiddler
win10, solo necesita instalar fiddler.exe e instálelo sin importarle.
Seleccione inspectores -> seleccione el
navegador de encabezados para visitar http : //192.168.2.8, haga doble clic en la vista de mensaje de 200 respuestas Codificación de contenido: gzip

Inserte la descripción de la imagen aquí

Abra el software fiddler4

Inserte la descripción de la imagen aquí

Visite la página web http://192.168.2.8, si no se muestra a la izquierda, se recomienda borrar la caché del navegador y volver a abrir el navegador y volver a ingresar la ip para visitar nuevamente.

Inserte la descripción de la imagen aquí

Tres, almacenamiento en caché de páginas web

1. Verifique si el módulo mod_expires está instalado

apachectl -t -D DUMP_MODULES | grep "expires"

Inserte la descripción de la imagen aquí

2. Si el módulo mod_expires no está instalado, recompile e instale Apache para agregar el módulo mod_expires

systemctl stop httpd.service
cd /usr/local/httpd/conf
ls
mv httpd.conf httpd.conf.bak2 #把之前做的网页压缩的配置文件改名

Inserte la descripción de la imagen aquí

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 && make install

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3. Configure el módulo mod_expires para habilitar

vim /usr/local/httpd/conf/httpd.conf
---------52行修改--------
Listen 192.168.2.8:80
-------111行取消注释------
LoadModule expires_module modules/mod_expires.so     #开启mod_expires模块
-----198行取消注释,修改------
ServerName www.mhh.com:80
-----末行添加---------
<IfModule mod_expires.c>
  ExpiresActive On                 #打开网页缓存功能
  ExpiresDefault "access plus 50 seconds"    #设置缓存60秒
</IfModule>

Inserte la descripción de la imagen aquí

4. Verifique la instalación e inicie el servicio

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

systemctl start httpd.service

Inserte la descripción de la imagen aquí

5. Pruebe si la caché es efectiva

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

Inserte la descripción de la imagen aquí

Método 1:
En el sistema Linux, abra el navegador Firefox, haga clic con el botón derecho y haga clic para ver los elementos.
Seleccione Red -> Seleccione HTML, WS, Otros.
Visite http://192.168.2.8 y verifique que el encabezado de respuesta contenga el Caduca el artículo

Inserte la descripción de la imagen aquí

Método 2:
instale Microsoft.NET4 y el software Fiddler en el sistema de Windows, abra el software Fiddler,
seleccione inspectores -> seleccione el
navegador de encabezados para visitar http://192.168.2.8, haga doble clic en el mensaje 200 para ver los vencimientos Articulo

Inserte la descripción de la imagen aquí

Cuatro, ocultar la información de la versión

1. Edite el archivo de configuración

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

----491行附件取消注释-------
Include conf/extra/httpd-default.conf

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


systemctl restart httpd.service

Inserte la descripción de la imagen aquí

2. Visite http://192.168.2.8 en el lado del navegador de la máquina virtual

Inserte la descripción de la imagen aquí

Cinco, Apache anti-sanguijuelas

  • Anti-hotlinking es para evitar que el código del sitio web de otros malverse imágenes, archivos, videos y otros recursos relacionados en nuestro propio servidor.

  • Si otros malversan estos recursos estáticos del sitio web, obviamente aumentará la presión del ancho de banda del servidor.

  • Como mantenedor del sitio web, es necesario evitar que los recursos estáticos del servidor sean malversados ​​por otros sitios web.

1. El proceso de hotlinking

En el lado del servidor, copie la dirección de la imagen

Inserte la descripción de la imagen aquí

Prepare otra máquina virtual como máquina hotlink (la máquina hotlink aquí es httpd instalada con yum, si compila e instala con código fuente, el archivo de configuración principal y el archivo de la página de inicio se guardan en diferentes ubicaciones)

df -Th
yum install -y httpd
vim /etc/httpd/conf/httpd.conf
cd /var/www/html
vim index.html
echo "192.168.2.8 www.mhh.com" >> /etc/hosts
echo "192.168.2.3 www.daolianji.com" >> /etc/hosts
systemctl restart httpd

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Por último, www.daolianji.com accede directamente a la máquina de cadena caliente.

Inserte la descripción de la imagen aquí

2. Configurar cadena antirrobo

1) Verifique si el módulo mod_rewrite está instalado (el experimento anterior de la función de reescritura se omite directamente)

apachectl -t -D DUMP_MODULES | grep "rewrite"

2) Si el módulo mod_rewrite no está instalado, recompile e instale Apache para agregar el módulo mod_rewrite

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf 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			

make && make install

Inserte la descripción de la imagen aquí

3) Habilitar módulo mod_rewrite

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

---------156行取消注释--------
LoadModule rewrite_module modules/mod_rewrite.so

Inserte la descripción de la imagen aquí

---------224行—————————
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

RewriteEngine On 	#打开 rewrite 功能,加入 mode_rewrite 模块内容
RewriteCond %{HTTP_REFERER} !^http://mhh.com/.*$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://mhh.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mhh.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mhh.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf|png)$ 	http://www.mhh.com/error.jpg		#设置跳转动作

Inserte la descripción de la imagen aquí

Tire de la imagen de salto al directorio / usr / local / httpd / htdocs

Inserte la descripción de la imagen aquí

systemctl restart httpd.service #重启httpd服务

4) Verificación de acceso en el lado de la máquina virtual

El acceso al nombre de dominio de la máquina de cadena en caliente se redirige automáticamente

Inserte la descripción de la imagen aquí

La vista detallada es la siguiente

Inserte la descripción de la imagen aquí

El acceso a través del nombre de dominio del servidor es normal.

Inserte la descripción de la imagen aquí

Explicación detallada sobre la configuración del campo de reescritura:

RewriteCond %{HTTP_REFERER} !^http://www.mhh.com/.*$ [NC]  的字段含义:
“%{HTTP_REFERER}” :存放一个链接的 URL,表示从哪个链接访问所需的网页。
“!^” :表示不以后面的字符串开头。
“http://www.mhh.com” :是本网站的路径,按整个字符串匹配。
“.*$” :表示以任意字符结尾。
“[NC]” :表示不区分大小写字母。

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

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

Supongo que te gusta

Origin blog.csdn.net/qq_35456705/article/details/112619969
Recomendado
Clasificación