Lighttpd con Apache

Comentarios

Uno de mis sitios web está experimentando un crecimiento fenomenal y después de la optimización de las consultas de base de datos y el uso de memcached, decidí que era hora de utilizar otro servidor web para servir a los medios de comunicación estática. He aquí cómo hacerlo.

Le recomiendo que eche un vistazo a un post anterior que escribí acerca de configurar cómo el servidor web para trabajar con Django, porque voy a estar manipulando a algunos archivos que he hablado allí. Si no está seguro acerca de las rutas correctas necesarias para su servidor, utilice el otro puesto como guía. He instalado Lighttpd y Apache configurado en mi Slicehost VPS, que es una empresa que le recomiendo. Si usted decide firmar con ellos, sería asombroso si utiliza mi correo electrónico (inerte@gmail.com) como referencia, y / o utilizar este enlace, que se encarga de establecer mí como su referencia.

Vamos a utilizar lighttpd en un puerto diferente a Apache para servir a los archivos de un directorio específico basado en el nombre de dominio, todo transparente a los usuarios navegar por su sitio web. No se realizaron cambios en mi código del sitio web, el servidor (Python) o cliente (HTML) secundarios.

Instalar Lighttpd

Mi servidor corre Ubuntu así que sólo ejecutó el comando siguiente para instalar Lighttpd:

  $ Apt-get install lighttpd 

Editar el archivo de configuración de Lighttpd:

  $ Vi / etc / lighttpd / lighttpd.conf 

Server.port Elimine la línea (el mío era el 60):

  server.port = 81 

Habilitar el módulo mod_evhost. Esto nos ayudará a utilizar un directorio diferente en función del nombre de dominio. Simplemente elimine la línea 19 (dentro de server.modules).

Añadir el siguiente en alguna parte, que dice que las peticiones de yourdomain.com debe buscar los archivos en / var / www / yourdomain.com / web /. Lo hice en la línea 118, después de la evhost.path ejemplos de patrón.

  $ HTTP [ "host"] = ~ "yourdomain \. Com" (
     evhost.path patrón = "/ var / www / yourdomain.com / web /"
 ) 

Inicio lighttpd:

  $ / Etc / init.d / lighttpd 

Apunte su navegador a su servidor para ver si está funcionando Lighttpd:

http://your.ip.address:81/

Tienes que ver algo como esto, haga clic en este (en la imagen para una versión más grande):

Lighttpd default page

Si tiene los directorios en / var / www /, añadir sus nombres a la dirección URL para ver si lighttpd está cumpliendo correctamente (debería):

http://your.ip.address:81/yourdomain.com

Configurar Apache

Para servir de manera transparente archivos con lighttpd de Apache, necesita habilitar proxy de Apache:

  $ Ln-s / etc/apache2/mods-available/proxy.load / etc/apache2/mods-enabled /
 $ Ln-s / etc/apache2/mods-available/proxy.conf / etc/apache2/mods-enabled /
 $ Ln-s / etc/apache2/mods-available/proxy_connect.load / etc/apache2/mods-enabled /
 $ Ln-s / etc/apache2/mods-available/proxy_http.load / etc/apache2/mods-enabled / 

Proxies sin garantía son utilizados por los spammers para Apache viene protegido contra malas configuraciones. Es necesario editar este archivo:

  $ Vi / etc/apache2/mods-available/proxy.conf 

Decir, cuando el proxy funciona y que tiene acceso a ella. Reemplace el * con 127.0.0.1, y elimine la línea Allow from. El resultado final es la siguiente:

  <Proxy 127.0.0.1>
         AddDefaultCharset fuera
         Order deny, allow
         Deny from all
         Allow from 127.0.0.1
 </ Proxy> 

Configurar el host virtual

  $ Vi / etc/apache2/sites-available/yourdomain.com 

Añadir este <VirtualHost> en algún lugar de:

  ProxyRequests Off
 El ProxyPreserveHost
 ProxyPass / web http://127.0.0.1:81/
 ProxyPassReverse / http://127.0.0.1:81/ 

Ha terminado con todas las configuraciones. Ahora, vuelva a cargar los módulos de Apache y reiniciar el servidor:

  $ / Etc/init.d/apache2 reload
 Apache2ctl $ reinicie 

Todo debe estar funcionando. Si obtiene un error, tratar de deshacer algunos pasos y después de cada cambio, volver a cargar y reiniciar Apache Apache y Lighttpd para ver cuando se rompió. Si navega a http://your.ip.address, debería ver todo el contenido de / web / se carga correctamente. ¿Cómo sabe usted que está siendo atendido por Lighttpd en lugar de Apache?

Esto debería decirle Apache es servir a la página:

  curl-I http://your.ip.address/ 

Si bien esto debería decirle Lighttpd cumple el archivo:

  curl-I http://your.ip.address/web/some.file 

Si usted tiene alguna duda o tiene problemas, por favor, un comentario y voy a tratar de ayudarle.

  • Animesh
    Hola

    Mi duda ha sido .. debemos tener lighttpd (o cualquier otro rápido / servidor web de la luz) proxy el contenido dinámico para el servidor web pesado, o debería ser el servidor proxy para lighttpd pesados (como lo has hecho).

    ¿Qué sería mejor. Lighty delante de Apache o Apache frente a lighty?
  • inerte
    Hi Animesh! No tengo ni idea:) Creo que es una buena pregunta, y que merece algunos puntos de referencia. Lamentablemente no voy a tener tiempo suficiente en las próximas semanas, de lo contrario lo haría yo mismo.

    Personalmente, mi apuesta es que no importa. De cualquier manera, las solicitudes se pasará a cada servidor web, así que supongo que funcionaría de la misma. La única diferencia es que está haciendo el poder, algo que es probablemente muy rápido en ambos servidores.
  • Reza
    lighttpd es más rápido y puede manejar más solicitudes por segundo y consume menos recursos, Apache es un proceso pesado y consume muchos recursos, por lo que es mejor proxy de Apache a lighttpd.
  • Julian
    ¿Por qué no sólo tiene que utilizar Lighty directamente, me refiero a que especifiquen todos los vínculos con el puerto 81? Eso sería malo?
  • inerte
    No está mal, sólo que las imágenes habría 81 en la URL. Es sólo más bonito sin ella.
  • Julian
    Es por eso que hice el puerto 8080 ahora;)
    Funciona como un encanto con Luminosas, y ahora se examina la URL de todos modos.
  • Viru
    Algunos proveedores de Internet le da más bandtwith en el puerto 80 y menos en cualquier otro puerto. Creo que usted debe usar un proxy por separado o IP con el puerto 80 para los archivos estáticos.
  • Adam
    Muchas gracias, yo había estado tomando el pelo a cabo tratando de hacer esto durante horas, sólo tengo trabajo gracias a sus instrucciones:)
  • Me voy a mudar de mediatemple a Slicehost, podría necesitar ayuda. Tal vez pueda registrarse a través de su enlace, envíame un correo electrónico a hablar de esto.

    gracias
  • Erik A.
    No veo la parte donde le digo a lighty para conectarse a Apache .. me estoy perdiendo algo? ¿Existe algún tipo de magia pasa?
  • Gracias;). Buen post!
blog alimentado por Disqus

Portugus flagItaliano flagCoreano flagChins (simplificado) flagEnglish flagAlemo flagFrancs flagEspanhol flag
Japons flagrabe flagRusso flagHolands flagBlgaro flagTcheco flagCroata flagDinamarqus flag
Finlands flagHindu flagPolons flagRomeno flagSueco flagGrego flagNoruegus flag 
By N2H
Dolet 96 de descuento en alojamiento DreamHost!
Utilice el "Código Promocional" inercia. LAMP con 20GB de espacio y 1 TB de transferencia.

Cobertura

  • No Related Posts

Categorías