Optimización web Apache
Directorio de artículos
- Optimización web Apache
-
- 1. Descripción general de la optimización de la página web de Apache
- 2. Configuración de compresión de páginas web
-
- 1. Primero apague el cortafuegos y el cortafuegos selinux
- 2. Compruebe si el módulo mod_ deflate está instalado
- 3. Elimine o cambie el nombre del archivo de configuración de Apache anterior.
- 4. Si el módulo mod_deflate no está instalado, recompile e instale Apache para agregar el módulo mod_deflate
- 5. Configure el módulo mod_deflate para habilitar
- 6. Verifique la instalación e inicie el servicio
- 7. Pruebe si el módulo de compresión es efectivo (dos métodos para verificar)
- Tres, almacenamiento en caché de páginas web
- Cuatro, ocultar la información de la versión
- Cinco, Apache anti-sanguijuelas
-
- 1. El proceso de hotlinking
- 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)
- 2) Si el módulo mod_rewrite no está instalado, recompile e instale Apache para agregar el módulo mod_rewrite
- 3) Habilitar módulo mod_rewrite
- 4) Verificación de acceso en el lado de la máquina virtual
- Explicación detallada sobre la configuración del campo de reescritura:
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
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
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配置文件
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>
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
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
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
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
Mire el encabezado de respuesta y descubra que contiene un módulo de compresión
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
Abra el software fiddler4
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.
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"
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 #把之前做的网页压缩的配置文件改名
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
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>
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
5. Pruebe si la caché es efectiva
cat /usr/local/httpd/htdocs/index.html
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
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
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
2. Visite http://192.168.2.8 en el lado del navegador de la máquina virtual
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
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
Por último, www.daolianji.com accede directamente a la máquina de cadena caliente.
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
3) Habilitar módulo mod_rewrite
vim /usr/local/httpd/conf/httpd.conf
---------156行取消注释--------
LoadModule rewrite_module modules/mod_rewrite.so
---------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 #设置跳转动作
Tire de la imagen de salto al directorio / usr / local / httpd / htdocs
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
La vista detallada es la siguiente
El acceso a través del nombre de dominio del servidor es normal.
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 这个图片。