Ajustar un servidor web virtual dedicado

May 22, 2025
Privacidad y seguridad
CONTENIDO NO CUBIERTO

Cuando obtiene un servidor virtual dedicado para ejecutar su sitio web, es muy probable que esté configurado para todos y no personalizado para maximizar el rendimiento para ejecutar un sitio web.

Contenido

[ esconder ]

  • 1. Información general
  • 2 Configuración de Linux
    • 2.1 Deshabilitar DNS
    • 2.2 Deshabilitar SpamAssassin
    • 2.3 Desactivar xinetd
    • 2.4 Limitar el uso de memoria de Plesk
    • 2.5 Deshabilitar o apagar Plesk (opcional)
  • 3 Configuración de MySQL
    • 3.1 Habilitar la caché de consultas
    • 3.2 Deshabilitar TCP / IP
  • 4 Configuración de Apache
  • 5 Configuración PHP
    • 5.1 Eliminar módulos PHP innecesarios
    • 5.2 Caché PHP Opcode
  • 6 Backups
    • 6.1 Crear script de copia de seguridad automatizado
    • 6.2 Sincronizar copias de seguridad fuera del sitio con Rsync
  • 7 Seguridad
    • 7.1 Deshabilitar el inicio de sesión de root a través de SSH
    • 7.2 Deshabilitar SSH versión 1
    • 7.3 Reiniciar el servidor SSH
    • 7.4 Verificar puertos abiertos
    • 7.5 Configurar un cortafuegos
  • 8 Véase también
  • 9 referencias

Visión de conjunto

Existe una serie de áreas problemáticas en las que queremos maximizar el rendimiento:

  • Configuración de Linux
    Por lo general, hay servicios en ejecución que no es necesario, desperdiciando memoria que podría usarse para más conexiones.
  • Configuración de MySQL
    A menudo, la configuración predeterminada se basa en un servidor pequeño, podemos agregar algunos cambios clave para aumentar mucho el rendimiento.
  • Configuración de Apache
    De forma predeterminada, la mayoría de los proveedores de alojamiento instalan apache con casi todos los módulos instalados. No hay razón para cargar módulos si nunca los va a utilizar.
  • Configuración PHP
    La configuración predeterminada de PHP está igualmente inflada, por lo general hay una tonelada de módulos adicionales innecesarios instalados.
  • Caché PHP Opcode
    En lugar de permitir que PHP recompile los scripts cada vez, una caché de código de operación almacenará en caché los scripts compilados en la memoria para aumentar enormemente el rendimiento.
  • Backups
    Probablemente debería configurar algunas copias de seguridad automáticas, ya que su proveedor de alojamiento no lo hará por usted.
  • Seguridad
    Claro, Linux es lo suficientemente seguro de forma predeterminada, pero generalmente hay algunos problemas de seguridad evidentes que puede solucionar con algunas configuraciones rápidas.

Configuración de Linux

Hay una gran cantidad de ajustes que puede hacer, que variarán ligeramente según el servidor que esté utilizando. Estos ajustes son para un servidor que ejecuta CentOS, pero deberían funcionar para la mayoría de los servidores DV.

Desactivar DNS

Si su proveedor de alojamiento maneja el DNS de su dominio (probablemente), puede desactivar la ejecución del servicio DNS.

deshabilitar dns
/etc/init.d/ named stop
chmod 644 /etc/init.d/named

El comando chmod elimina el permiso de ejecución del script, impidiendo que se ejecute en el inicio.

Desactivar SpamAssassin

Si no está utilizando cuentas de correo electrónico en su servidor, no debería molestarse en ejecutar herramientas anti-spam. (También debería consultar Google Apps, una solución de correo electrónico mucho mejor)

/etc/init.d/psa-spamassassin stop
chmod 644 /etc/init.d/psa-spamassassin

Desactivar xinetd

El proceso xinetd alberga una serie de otros procesos, ninguno de los cuales es útil para un servidor web típico.

/etc/init.d/xinetd parada
chmod 644 /etc/init.d/xinetd

Limitar el uso de memoria de Plesk

Si usa el panel plesk, puede forzarlo a usar menos memoria agregando un archivo de opciones.

vi /usr/local/psa/admin/conf/httpsd.custom.include

Agregue las siguientes líneas al archivo:

MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClientes 5

Tenga en cuenta que se sabe que esta opción funciona en servidores MediaTemple DV, pero no se ha comprobado en ningún otro. (Ver Referencias )

Desactivar o desactivar Plesk (opcional)

Si solo usa Plesk una vez al año, hay muy pocas razones para dejarlo en funcionamiento. Tenga en cuenta que este paso es completamente opcional y un poco más avanzado.

Ejecute el siguiente comando para apagar plesk:

/etc/init.d/psa stop

Puede desactivarlo para que no se ejecute al inicio ejecutando el siguiente comando:

chmod 644 /etc/init.d/psa

Tenga en cuenta que si lo desactiva, no podrá iniciarlo manualmente sin volver a cambiar los permisos del archivo (chmod u + x).

Configuración de MySQL

Habilitar la caché de consultas

Abra su archivo /etc/my.cnf y agregue las siguientes líneas en su sección [mysqld] de esta manera:

[mysqld]
query-cache-type = 1
query-cache-size = 8M

Puede agregar más memoria a la caché de consultas si lo desea, pero no use demasiada.

Deshabilitar TCP / IP

Un número sorprendente de hosts permite el acceso a MySQL en TCP / IP de forma predeterminada, lo que no tiene sentido para un sitio web. Puede averiguar si mysql está escuchando en TCP / IP ejecutando el siguiente comando:

netstat -an | grep 3306

Para deshabilitar, agregue la siguiente línea a su archivo /etc/my.cnf:

omitir redes

Configuración de Apache

Abra su archivo httpd.conf, que a menudo se encuentra en /etc/httpd/conf/httpd.conf

Encuentra la línea que se ve así:

Tiempo de espera 120

Y cámbielo a esto:

Tiempo de espera 20

Ahora busque la sección que incluye estas líneas y ajústese a algo similar:

StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 100
MaxClientes 100
MaxRequestsPerChild 4000

Configuración PHP

Una de las cosas a tener en cuenta al ajustar un servidor en la plataforma PHP es que cada hilo de Apache cargará PHP en una ubicación separada en la memoria. Esto significa que si un módulo no utilizado agrega 256k de memoria a PHP, en 40 subprocesos de Apache, está desperdiciando 10 MB de memoria.

Eliminar módulos PHP innecesarios

Deberá ubicar su archivo php.ini, que generalmente se encuentra en /etc/php.ini (tenga en cuenta que en algunas distribuciones habrá un directorio /etc/php.d/ con varios archivos .ini, uno para cada módulo.

Comente cualquier línea de módulo de carga con estos módulos:

  • odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • cargador ioncube
  • json
  • imap
  • LDAP
  • maldiciones

Todo: Agrega más información aquí.

Caché PHP Opcode

Hay una serie de cachés de código de operación que puede usar, incluidos APC, eAccelerator y Xcache, el último es mi preferencia personal debido a la estabilidad.

Descargue xcache y extráigalo en un directorio, y luego ejecute los siguientes comandos desde el directorio fuente de xcache:

phpize
./configure --enable-xcache
hacer
hacer instalar

Abra su archivo php.ini y agregue una nueva sección para xcache. Deberá ajustar las rutas si sus módulos php se cargan desde otro lugar.

vi /etc/php.ini

Agregue la siguiente sección al archivo:

[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.user = "myusername"
xcache.admin.pass = "putanmd5hashhere"
[xcache]
; Cambie xcache.size para ajustar el tamaño de la caché del código de operación
xcache.size = 16M
xcache.shm_scheme = "mmap"
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
; Cambie xcache.var_size para ajustar el tamaño de la caché de variables
xcache.var_size = 1 M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Desactivado
xcache.readonly_protection = Activado
xcache.mmap_path = "/ tmp / xcache"
xcache.coredump_directory = ""
xcache.cacher = Activado
xcache.stat = Activado
xcache.optimizer = Desactivado

Todo: Necesito expandir esto un poco y vincularlo a xcache en las referencias.

Backups

No hay nada más importante que tener copias de seguridad automáticas de su sitio web. Es posible que pueda obtener copias de seguridad instantáneas de su proveedor de alojamiento, que también son muy útiles, pero yo prefiero tener copias de seguridad automáticas también.

Crear script de copia de seguridad automatizado

Normalmente empiezo creando un directorio / backups, con un directorio / backups / files debajo. Puede ajustar estas rutas si lo desea.

mkdir -p / copias de seguridad / archivos

Ahora cree un script backup.sh dentro del directorio de copias de seguridad:

vi /backups/backup.sh

Agregue lo siguiente al archivo, ajustando las rutas y la contraseña de mysqldump según sea necesario:

#! / bin / sh

THEDATE = `fecha +% d% m% y% H% M`

mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak

tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / my-website-path / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar

buscar / copias de seguridad / archivos / sitio * -mtime +5 -exec rm {} \;
buscar / copias de seguridad / archivos / db * -mtime +5 -exec rm {} \;

La secuencia de comandos primero creará una variable de fecha para que todos los archivos tengan el mismo nombre para una sola copia de seguridad, luego vuelca la base de datos, guarda los archivos web y los comprime con gzip. Los comandos de búsqueda se utilizan para eliminar cualquier archivo que tenga más de 5 días, ya que no desea que su disco se quede sin espacio.

Haga que el script sea ejecutable ejecutando el siguiente comando:

chmod u + x /backups/backup.sh

A continuación, deberá asignarlo para que se ejecute automáticamente mediante cron. Asegúrese de utilizar una cuenta que tenga acceso al directorio de copias de seguridad.

crontab -e

Agregue la siguiente línea al crontab:

1       1       *       *       *       /backups/backup.sh

Puede probar el script con anticipación ejecutándolo mientras está conectado a la cuenta de usuario. (Normalmente ejecuto las copias de seguridad como root)

Sincronizar copias de seguridad fuera del sitio con Rsync

Ahora que tiene copias de seguridad automáticas de su servidor en ejecución, puede sincronizarlas en otro lugar utilizando la utilidad rsync. Querrá leer este artículo sobre cómo configurar las claves ssh para el inicio de sesión automático: Agregue la clave SSH pública al servidor remoto con un solo comando

Puede probar esto ejecutando este comando en una máquina Linux o Mac en otra ubicación (tengo un servidor Linux en casa, que es donde ejecuto esto)

rsync -a [email protected]: / backups / files / * / offsitebackups /

Esto tardará bastante en ejecutarse la primera vez, pero al final, su computadora local debería tener una copia del directorio de archivos en el directorio / offsitebackups /. (Asegúrese de crear ese directorio antes de ejecutar el script)

Puede programar esto agregándolo a una línea crontab:

crontab -e

Agregue la siguiente línea, que ejecutará rsync cada hora en la marca de 45 minutos. Notarás que usamos la ruta completa a rsync aquí.

45 * * * * / usr / bin / rsync -a [email protected]: / backups / files / * / offsitebackups /

Puede programarlo para que se ejecute a una hora diferente o solo una vez al día. Eso realmente depende de ti.

Tenga en cuenta que hay muchas utilidades que le permitirán sincronizar a través de ssh o ftp. No es necesario utilizar rsync.

Seguridad

Lo primero que debe hacer es asegurarse de tener una cuenta de usuario normal para usar a través de ssh y asegurarse de que puede usar su para cambiar a root. Es una muy mala idea permitir el inicio de sesión directo para root a través de ssh.

Deshabilitar el inicio de sesión de root a través de SSH

Edite el archivo / etc / ssh / sshd_config y busque la siguiente línea:

#PermitRootLogin sí

Cambie esa línea para que se vea así:

PermitRootLogin no

Asegúrese de tener una cuenta de usuario normal y de poder acceder a la raíz antes de realizar este cambio, de lo contrario podría bloquearse.

Deshabilitar SSH versión 1

Realmente no hay ninguna razón para usar otra cosa que no sea SSH versión 2, ya que es más seguro que las versiones anteriores. Edite el archivo / etc / ssh / sshd_config y busque la siguiente sección:

#Protocolo 2,1
Protocolo 2

Asegúrese de que solo esté utilizando el Protocolo 2 como se muestra.

Reiniciar el servidor SSH

Ahora deberá reiniciar el servidor SSH para que esto surta efecto.

/etc/init.d/sshd reiniciar

Verificar puertos abiertos

Puede usar el siguiente comando para ver en qué puertos está escuchando el servidor:

netstat -an | grep ESCUCHAR

Realmente no debería tener nada escuchando excepto los puertos 22, 80 y posiblemente 8443 para plesk.

Configurar un cortafuegos

Opcionalmente, puede configurar un firewall de iptables para bloquear más conexiones. Por ejemplo, normalmente bloqueo el acceso a cualquier otro puerto que no sea mi red de trabajo. Si tiene una dirección IP dinámica, querrá evitar esa opción.

Si ya ha seguido todos los pasos de esta guía hasta ahora, probablemente no sea necesario agregar también un firewall a la combinación, pero es bueno comprender sus opciones.

Ver también

  • Usando Iptables en Linux

Referencias

.entrada-contenido .entry-footer

Setting Up Virtual Hosts For The Apache Web Server - Tutorial

WHM Dedicated Server Configuration 3

Setting Up A Dedicated Server For A Multiplayer Game In Unity

WHM Bangla Tutorial Dedicated Server Configuration 2

Valheim Dedicated Server Setup | Host A FREE Private Server

How To Deploy A Cloud Dedicated Server With Free InterWorx - Host Unlimited Accounts

Set Up A Simple Web Server At Home In Under 10 Minutes Using Windows And WAMP

How To Setup A Cloud Dedicated Server W/InterWorx & Add Your Website, Name Servers, & Hostname SSL


Privacidad y seguridad - Artículos más populares

Cómo evitar que Facebook te rastree en Firefox

Privacidad y seguridad Mar 18, 2025

CONTENIDO NO CUBIERTO Firefox 74 tiene un complemento oficial de contenedor de Facebook que evita que el gigante de las redes sociales rastree su actividad de navegaci..


Cómo hacer que el lector de huellas dactilares de su teléfono sea más preciso

Privacidad y seguridad Jul 13, 2025

CONTENIDO NO CUBIERTO Los lectores de huellas digitales en los teléfonos han hecho que los dispositivos sean más seguros y más rápidos de desbloquear, al menos cuando funciona..


¿Qué tan seguras son las redes Wi-Fi en malla?

Privacidad y seguridad Dec 14, 2024

Estás considerando una No en la red , porque estás harto de que ese lugar de tu casa no tenga recepción. Pero, ¿la conveniencia de estos sistemas viene con la mis..


Por qué no debería deshabilitar el control de cuentas de usuario (UAC) en Windows

Privacidad y seguridad Sep 26, 2025

El control de cuentas de usuario es una característica de seguridad importante en las últimas versiones de Windows. Mientras hemos explicado cómo deshabilitar UAC ..


Cómo habilitar la autenticación en dos pasos para una mayor seguridad en Windows 8 y la Web

Privacidad y seguridad May 11, 2025

CONTENIDO NO CUBIERTO Microsoft lanzó recientemente la autenticación de dos factores para las cuentas de Windows Live, y aquí se explica cómo habilitarla. ..


Cómo usar Google Chrome para acceder de forma remota a su computadora

Privacidad y seguridad Jul 11, 2025

CONTENIDO NO CUBIERTO Hemos analizado algunas de las diversas formas en que se puede lograr el acceso remoto a su computadora, incluido el uso de TeamViewer y ..


Cómo cifrar y ocultar sus archivos personales dentro de una foto

Privacidad y seguridad Oct 27, 2025

CONTENIDO NO CUBIERTO ¿Tienes planes secretos para conquistar el mundo que no quieres que nadie pueda leer? Cifre esos preciosos bytes con una contraseña personalizada antes de ..


Eliminar gadgets y resolución de pantalla en el menú contextual del escritorio de Windows 7

Privacidad y seguridad Aug 19, 2025

CONTENIDO NO CUBIERTO Una de las primeras cosas que puede notar en Windows 7 es la adición de los nuevos elementos Gadgets y Screen Resolution al menú contextual. El único problema es qu..


Categorías