Bienvenido a Tecnohackers

Tecnohackers » Sistemas Operativos » Sistemas Operativos Libres (Moderador: pablinsoft)
 » 

En este post todo sobre apache en linux, optimizando, configurando y demas.



Autor Tema: En este post todo sobre apache en linux, optimizando, configurando y demas.  (Leído 1938 veces)

silencio

  • Visitante
En otro post dejare como compilar apache y hacer que arranque pero en este ire poniendo poco a poco como configurarlo bien,  una larga recompilacion de tips para apache que tengo, de muchas paginas, muchos webmaster, y al final tal vez salgan muchas cosas para tener un apache casi perfecto, pero bueno...


Este el primer tip, de como optimizar un poco el apache, reduciendo tiempos,

**************

Los parámetros  por defecto del Apache no están para nadajustados a servidores con mucha carga. Especialmente uno…

 
  Todos más o menos saben que hay que ajustar el número de procesos máximos, el mínimo y los procesos “en espera” para atender a nuevas peticiones. Mas o menos asi,

  StartServers         40
MinSpareServers      30
MaxSpareServers     50
MaxClients          240
MaxRequestsPerChild  10000 #Para liberar la memoria consumida por algunos scripts "gordos"

 También es importante reducir el timeout:
  Timeout 30
 Y por supuesto, minimizar el número de módulos cargados ya que cada uno de ellos consume memoria.
  Pero si hay un parámetro que es fundamental para reducir el número total de procesos (y por lo tanto consumo de memoria) para no llegar a los límites es algo que muy poca gente lo hace. Reducir el tiempo de espera para las conexiones persistentes. Por defecto es de 15 segundos, pero resulta que no tiene sentido tanto tiempo. Cuando un navegador usa las conexiones persistentes es para bajar las imágenes una tras otra, en serie y lo más rápido posible. Así que no tiene sentido “gastar” un proceso para que quede consumiendo memoria y sin hacer nada durante 15 segundos.
  En el server cambiado 15 a 3 segundos:

  KeepAliveTimeout 3

 Y fue impresionante, el número medio de procesos Apache bajó de 160-180 a no más de 120 (en general no supera 100). Ahora mismo estamos en hora que no es pico pero está entre las más altas, y no supera 90 procesos:

  $ ps ax | grep apache | wc -l
90


Ese tip del server de meneame, una pagina con trafico suficiente como para pensar en optimizar y aqui se
los dejo, despues mas, tocando los archivos de configuracion, y alguna que otra cosa con el apache, en otro post la instalcion
como dije antes, y las rutas que en todos los server cambian pero eso es cosa del que instala el apache..




Nos vemos
« Última modificación: Junio 09, 2011, 12:00:18 am por merovingio »

silencio

  • Visitante

Acelerador de PHP APC ( Alternative PHP Cache)

 Puesto que PHP es un lenguaje interpretado, cada página tiene acceso mediante la ejecución del propio script, que este a su vez es parseado, analizado, compilado y finalmente ejecutado.

Este ciclo de cargar, analizar y compilar puede añadir una demora de tiempo en el procesamiento bastante elevado, especialmente cuando uno alberga un sitio web con un número de visitas considerable.

You are not allowed to view links. Register or Login tienen como objetivo solventar esta situación, reducir la demora y lograr mantener una versión compilada de la secuencia de comandos en memoria (o disco) consiguiendo en la siguiente petición servir el mismo script compilado, optimizando el ciclo natural de la ejecución de PHP.

 APC tiene claras ventajas:

 
  • Reduce el tiempo en la carga de las páginas
  • Se puede manejar mediante el mismo PHPYou are not allowed to view links. Register or Login
  • Es transparente para la aplicación
  • Evita recompilar el código PHP por cada conexión
  • Disminuye la carga en el servidor, principalmente tiempo de CPU y consumo de memoria, lo cual es elemental para una web grande, o en particulares cuando sufren los famosos efectos de webs populares.
  Esto nos va a venir de perlas para aplicativos similares a drupal u otros.

  Ahora vamos a ver como podemos utilizarlo en  Linux, para ello nos hará falta tener un servidor web como Apache y tener PHP instalado como módulo del mismo.

Puede que según la versión, tenga un paquete con distinto nombre, simplemente hay que seleccionar el más acorde.

Debian:


$ sudo aptitude update
$ sudo apt-get install apache2-threaded-dev php5-dev php-pear make
$ sudo ln -s /usr/bin/apxs2 /usr/bin/apxs
$ sudo pecl install apc
$ sudo gedit /etc/php5/apache2/php.ini
o bien /etc/php5/conf.d/apc.ini

Si en debian sale el mensaje Sorry, I was not able to successfully run APXS., hay que instalar apache2-prefork-dev
$ sudo aptitude install apache2-prefork-dev

Ahora en el fichero php.ini añadiremos estas dos lineas al final:

extension=apc.so
apc.enabled=1


Finalmente reiniciamos el servidor web

$ sudo /etc/init.d/apache2 restart

Para instalaciones manuales desde los fuentes (válido para cualquier linux) previamente hay que tener instalado el servidor Apache y PHP, en este escenario, vamos a suponer que ambos programas los tenemos instalados  en /usr/local, es decir:
/usr/local/apache
/usr/local/php


Ahora nos bajamos la última versión del You are not allowed to view links. Register or Login de la web oficial. (actualmente la 3.0.19)

You are not allowed to view links. Register or Login

// Como usuario normal

$ cd /tmp
$ wget You are not allowed to view links. Register or Login
$ tar xvfz  APC-3.0.19.tgz
$ cd APC-3.0.19
$ /usr/local/php/bin/phpsize
$ ./configure --enable-apc --enable-apc-mmap --with-apxs=/usr/local/apache/bin/apxs --with-php-config=/usr/local/php/bin/php-config
$ make
// como usuario root
# make install


Esto nos instalará el módulo en /usr/local/php/lib/php/20060613/apc.so

Para la activación manual, editamos el fichero php.ini

# gedit /usr/local/php/etc/php.ini

Añadimos estas dos lineas alfinal del fichero php.ini:

 extension=/usr/local/php/lib/php/20060613/apc.so  (poner la ruta absoluta)

apc.enabled=1

Finalmente reiniciamos el servidor web

# apachectl  stop
# apachectl start


Para verificar que está realmente activo el APC, podemos utilizar la linea de commandos de PHP o bien el módulo de Apache con una sencilla página PHP.

$ php -i | grep -i apc

O bien, crear una página estilo info.php:

 <?php
    phpinfo();
 ?>


Ambos commandos deberían de devolver respuesta confirmando la utilización del APC, por tanto, ya hemos logrado nuestro objetivo, nuestras aplicaciónes desde este momento y de manera transparente empezarán a utilizar el sistema de cache compilada en  PHP.

De manera predeterminada, para la mayoría de usuarios las opciones por defecto son suficientes, en caso de querer experimentar comportamientos distintos, hay que leer las  Opciones de configuracion que se deben añadir en el fichero php.ini e ir jugando con distintos valores hasta lograr los resultados esperados.



Nos vemos
« Última modificación: Abril 26, 2010, 02:37:18 am por alma_triste »

Desconectado merovingio

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2851
  • IN HOC SIGNO VINCES
Re:En este post todo sobre apache en linux, otimizando, configurando y demas.
« Respuesta #2 en: Febrero 21, 2011, 09:00:17 pm »
Configurar soporte HTTPS en Apache

Este tutorial describe cómo poner en marcha un servidor web con soporte HTTPS. El procedimiento lo he utilizado en un equipo con Scientific Linux, distribución derivada de Red Hat, por lo que en esta distribución y en otras derivadas como Fedora o CentOS debería ser el mismo. En Ubuntu, Debian y compañía será muy similar pero cambiarán algunas rutas y el sistema de paquetería.

El certificado utilizado es autogenerado y suponemos que tenemos ya instalado Apache.


Instalación de OpenSSL y mod_ssl

Lo primero que necesitamos es tener instalado el software necesario, para ello a través de yum hacemos lo siguiente:

yum install mod_ssl openssl

En Ubuntu seria:

sudo apt-get install mod_ssl openssl

Generación del certificado

Primero generamos la clave privada, elegimos algoritmo RSA y 1024 bits:

openssl genrsa -out ca.key 1024

Ahora generamos el CSR (Certificate Signing Request), un fichero que crea una entidad para pedirle a una tercera que lo firme, verificando así que los datos de la primera entidad son correctos. De esta forma unas entidades van certificando a otras creando una cadena de certificación, donde la primera entidad de llama la raí­z de certificación.

openssl req -new -key ca.key -out ca.csr

Finalmente, nos autofirmamos el certificado:

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Le hemos puesto un período de validez de un año, pero podéis cambiar a vuestro gusto este tiempo. OpenSSL os pedirá una serie de datos sobre el certificado y su entidad emisora (vosotros): correo electrónico, ciudad, país… a través de un interfaz en texto.

Cambio de rutas

El siguiente paso es mover los ficheros de la firma que acabamos de generar a la ruta correcta.

mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr


Configuración de Apache

Ya estamos listos para comenzar con la configuración de Apache. En las versiones más modernas de Apache, el fichero de configuración viene dividido en varios ficheros separados por temática para un acceso más rápido a la parte deseada. El fichero que vamos a editar es el siguiente: /etc/httpd/conf.d/ssl.conf.

Buscamos las siguientes líneas y le asignamos el valor correcto (no tienen por qué estar seguidas una de la otra):

SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key



Host virtual

Para terminar crearemos un host virtual donde indicaremos a Apache dónde buscar las peticiones dirigidas al puerto 443 (las peticiones HTTPS). Definimos un host virtual al final de /etc/httpd/conf/httpd.conf:

NameVirtualHost *:443

Y luego la definición de las características en sí:

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/ca.crt
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key

        AllowOverride All

        DocumentRoot /var/www/httpsdocs
        ServerName nombresitio.com
</VirtualHost>


Reiniciar el servicio

Y ya tendremos listo el sitio seguro. Tened en cuenta que como la firma es autogenerada, los navegadores no la contemplarán como segura y aparecerá la típica pantalla de “Error SSL” o similar, que seguro que conocéis.

[
img]http://www.linuxhispano.net/wp-content/uploads/2011/02/error_ssl.png[/img]

No respondo dudas por IM, usa el FORO

Tags:
Tags:

 


SMF 2.0.11 | SMF © 2015, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal