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. Aquí está cómo hacerlo.
Le recomiendo que eche un vistazo en el post anterior que escribí acerca de cómo configurar el servidor web para trabajar con Django porque voy a estar manipulando 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 Apache Lighttpd y configurado en mi Slicehost VPS, que es una empresa que le recomiendo. Si usted decide inscribirse con ellos, sería impresionante b si mi correo electrónico (inerte@gmail.com) como una referencia, y / o utilización en este enlace que se encarga de establecer su referencia para mí.
Vamos a usar Lighttpd en un puerto diferente a Apache para servir archivos de un directorio específico basado en el nombre de dominio, todo transparente a los usuarios navegar por su sitio web. Si no introdujo cambios en mi código del sitio web, el servidor (Python) o cliente (HTML) secundarios.
Mi servidor se ejecuta Ubuntu por lo que sólo ejecutó el comando para instalar Tras Lighttpd:
$ Apt-get install lighttpd Editar configuración de Lighttpd de archivo:
$ Vi / etc / lighttpd / lighttpd.conf Server.port comentario en la línea (la mía era la 60):
server.port = 81 Mod_evhost Habilitar el módulo. ¿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).
Agregue lo siguiente en alguna parte, ¿Qué dice solicitudes de yourdomain.com debe buscar los archivos en / var / www / yourdomain.com / web /. Lo hice en la línea 118, después de que el patrón de evhost.path ejemplos.
$ HTTP ["host"] = ~ "\ tudominio. 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/
Usted necesita ver algo como esto, haga clic (en la imagen para una versión más grande):
Si cuenta con directorios en / var / www /, los nombres de ITS para añadir la url para ver si está cumpliendo correctamente lighttpd ellos (debería):
http://your.ip.address:81/yourdomain.com
Para servir de manera transparente archivos con Lighttpd de Apache, necesita habilitar proxy en 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 usados por los spammers para Apache viene vigilado contra malas configuraciones. Es necesario editar este archivo:
$ Vi / etc/apache2/mods-available/proxy.conf Decir, cuando el trabajo de proxy y quién tiene acceso a ella. Vuelva a colocar el * con 127.0.0.1, y descomentar la línea Allow from. El resultado final es la siguiente:
<Proxy 127.0.0.1> AddDefaultCharset fuera Orden negar, permiten Denegar de todos los Deje de 127.0.0.1 </> Proxy
$ Vi / etc/apache2/sites-available/yourdomain.com Añadir esta <VirtualHost> en algún lugar dentro:
ProxyRequests Off En ProxyPreserveHost ProxyPass / http://127.0.0.1:81/ web 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 reiniciar
Todo debería estar trabajando. Si obtiene un error, tratar de deshacer algunos pasos y después de cada cambio, volver a cargar Apache y reiniciar Apache y Lighttpd para ver cuando se rompió. Si va a http://your.ip.address, debería ver todo el contenido de / web / se carga correctamente. ¿Cómo sabe usted que está siendo servida por Lighttpd en lugar de Apache?
Esto debe decirle a Apache está sirviendo a la página:
curl-I http://your.ip.address/ Si bien esto debería decirle Lighttpd es servir a la disposición:
curl-I http://your.ip.address/web/some.file Si tiene cualquier duda o problema, por favor comentario y voy a tratar de ayudarle.