Instalar Apache en CentOS7
Referencia oficial
Página web oficial Documentación del producto HTTPS GzipRealizar la instalación
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
Modificar el archivo de configuración
Una vez completada la instalación, debemos realizar algunas modificaciones en el archivo de configuración. El contenido de modificación específico generalmente incluye: IP y puerto vinculados, transmisión de compresión gzip, número de conexiones simultáneas y SSL. Expliquémoslos uno por uno a continuación.
Modificar la IP y el puerto vinculados
La IP y el puerto predeterminados que escucha Apache es 0.0.0.0:80. Si necesitamos modificar la IP y el puerto monitoreados, podemos modificarlos directamente. Si necesitamos vincular varios puertos, también podemos agregarlos. En el siguiente ejemplo, vinculamos los puertos 80 y 443. El puerto 443 es el número de puerto predeterminado para HTTPS.
Listen 80
Listen 443 https
Transmisión gzip abierta
Debido a que el rendimiento de la CPU de nuestra computadora es relativamente alto, generalmente el cuello de botella aparecerá en el ancho de banda de la red, por lo que podemos optar por activar la transmisión de compresión gzip. Hay 9 niveles de compresión, podemos elegir según el rendimiento de nuestro servidor y encontrar el nivel más adecuado. En el siguiente ejemplo, lo configuramos en el nivel 1. Los tipos de archivos comprimidos son: html, xml, php, css, js, también podemos agregar tipos de archivos comprimidos según sea necesario.
<IfModule mod_deflate.c>
DeflateCompressionLevel 1
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>
Configurar KeepAlive
La función de KeepAlive es mantener el cliente y el servidor conectados durante un período de tiempo. Cuando abrimos una página web, generalmente necesitamos cargar el contenido principal, js, css e imágenes. Dado que cada recurso necesita iniciar una solicitud HTTP separada, habilitamos KeepAlive para reducir el tiempo requerido para que cada solicitud establezca un enlace TCP / IP. Pero KeepAlive también tiene inconvenientes, hará que los recursos de E / S del servidor estén ocupados, por lo que debemos elegir si habilitar KeepAlive de acuerdo con la situación real. Si KeepAlive está habilitado, también necesitamos establecer un tiempo de espera razonable para evitar que el servidor IO esté ocupado durante mucho tiempo. El siguiente ejemplo contiene varias configuraciones principales de KeepAlive.
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
Configure el número de concurrentes
Una configuración razonable del número de concurrentes puede mejorar enormemente el rendimiento del servidor. Normalmente nuestro Apache funciona en modo mpm_prefork. Necesitamos configurar razonablemente varios parámetros clave. A lo que debemos prestar atención es a que el número máximo de conexiones no debe ser demasiado pequeño, demasiado pequeño hará que se rechacen una gran cantidad de solicitudes de usuario cuando la concurrencia es alta. El valor razonable que establezcamos debe referirse a la CPU y la memoria del servidor. Siempre que los recursos sean suficientes, debemos establecerlo lo más grande posible, pero si lo establecemos demasiado grande, los recursos del servidor se agotarán y Apache también fallará.
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
Configurar SSL
La mayoría de los sitios web ahora tienen SSL habilitado para admitir conexiones seguras HTTPS. La ventaja de HTTPS es que el contenido durante la transmisión está encriptado, por lo que no hay necesidad de preocuparse por la fuga de información debido a la interceptación por parte de otros. Antes de habilitar SSL, primero debemos solicitar un certificado. Después de obtener el certificado, consulte la siguiente configuración para completar la configuración de SSL.
<VirtualHost *:443>
ServerAdmin www.test.com
ServerName www.testl.com
DocumentRoot /var/www/test
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile /etc/httpd/conf/cert/public.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/1533528967430.key
SSLCertificateChainFile /etc/httpd/conf/cert/chain.crt
AllowEncodedSlashes on
<Directory "/var/www/test.com">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>