Sie sind auf Seite 1von 29

CARACTERSTICASDELSERVIDOR

LICENCIA
FUNCIONAMIENTO
VENTAJAS
IMPACTOENELMERCADO
LENGUAJEUTILIZADO
SISTEMASOPERATIVOSSOPORTADOS
SERVIDORWEBVIRTUAL
VIRTUALHOSTS
MLTIPLESDOMINIOS
Creacindelsitioweb.
Redireccinlocal
ConfiguracindelVirtualHost
Reiniciarelservidor
MLTIPLESDIRECCIONES
Hostvirtualbasadoenpuertos
SERVIDORWEBCONRESTRICCIONESDEUSUARIOS
AutenticacinBsica
SERVIDORWEBCONBALANCEODECARGA
SERVIDORWEBCONSEGURIDADHTTPS
MONITOREODERECURSOSCONMUNIN
ESTRUCTURADEMUNIN
INSTALACINYCONFIGURACIN
INSTALACINDEPLUGINS
PRUEBASYRESULTADOS

SERVIDOR WEB HTTP-HTTPS

Apache es elservidorwebms usadoen sistemasLinux. Los servidoresweb seusan


para servir pginas web solicitadas por equipos cliente. Los clientes normalmente
solicitan y muestran pginas webmedianteel uso denavegadores webcomoFirefox,
Opera,Safari,Chrome,etc.

Los usuarios introducen un Localizador de Recursos Uniforme (Uniform Resource


Locator, URL) para sealar a un servidor web por medio de su Nombre de Dominio
Totalmente Cualificado (Fully Qualified DomainName,FQDN) y de unarutaalrecurso
solicitado. Por ejemplo, para ver la pgina web del sitio web de Ubuntu, un usuario
debera introducir nicamenteelFQDN.Parasolicitarinformacinespecficaacercadel
soportedepago,unusuariodeberintroducirelFQDNseguidodeunaruta.

El protocolo ms comnmente utilizado para ver pginas Web es el Hyper Text


Transfer Protocol (
HTTP
). Protocolos como el Hyper Text Transfer Protocol sobre
SecureSocketsLayer(
HTTPS
), y File TransferProtocol(
FTP
),unprotocoloparasubir
y descargar archivos, tambin son soportados.
El protocolo utilizado para la
transferencia de hipertextoes HTTP (HiperTextTransfer Protocol) que est basadoen
el envode mensajesyestableceelconjuntodenormasmediantelascualesseenvan
laspeticionesdeaccesoaunawebylarespuestadeesaweb.

La arquitectura utilizada es cliente/servidor, es decir, el equipo cliente hace una


solicitudopeticinalequiposervidorystelaatiende.
Enelequipoclienteseejecutaunaaplicacinllamada'navegadoroclienteweb'que:
Sirve de interfaz con el usuario: atiende sus peticiones, muestra los
resultados de las consultas y proporciona al usuario un conjunto de
herramientasquefacilitansucomunicacinconelservidor.
Se comunica con el servidor web: transmite las peticiones de los
usuarios.

CARACTERSTICAS DEL SERVIDOR

ServidordeArchivosestticos.
SoporteSSL.
SoporteHostVirtuales.
Proxyinverso.
BalanceodeCarga.
ControlesdeAcceso.
ReescrituraURL.
AutentificacinmedianteDigest.
Soporteparalenguajesperl,python,php.
Modulosdeautentificacin.

LICENCIA
ApacheLicense

La licencia Apache es una licencia de


software libre creada por la
Apache Software
Foundation (ASF). La licencia Apacherequierelaconservacindelavisode
copyrighty
el
disclaimer
, pero noesuna licencia
copyleft
, ya quenorequiere laredistribucin del
cdigofuentecuandosedistribuyenversionesmodificadas.

Como cualquier otra de las


licencias de software libre
, la Licencia Apache permite al
usuario del software la libertad de usarlo para cualquier propsito, distribuirlo,
modificarlo,ydistribuirversionesmodificadasdeesesoftware.
La Licencia Apache no exige que las obras derivadas (versiones modificadas) del
software se distribuyan usando la misma licencia, ni siquiera que se tengan que
distribuir como software libre/open source. La Licencia Apache slo exige que se
mantenga una noticia queinforme a los receptores queenla distribucin sehausado
cdigo con la Licencia Apache. As, en contraste a las licencias
copyleft
, quienes
reciben versiones modificadas de cdigo con Licencia Apache no reciben
necesariamentelasmismaslibertades.
Se deben aadir dos archivos en el directorio principal de los paquetes de software
redistribuidos:
LICENSEUnacopiadelalicencia
NOTICE Un documento de texto, que incluye los "avisos" obligatorios del
softwarepresenteenladistribucin.

FUNCIONAMIENTO

El funcionamiento de Apache es a travs de servicios (Windows) o bien daemons


(demonios) en ambientes UNIX, estos servicios son ejecutables que toman el nombre del
protocolo HTTP (Hyper Text Transfer Protocol) y se llaman httpd. Estos servicios se
encargan de atender las peticiones (request) de los usuarios las cuales generalmente
solicitan algn tipo de recurso al servidor, ya sea un elemento html, unelementomultimedia
(imagenes, video, etc), un applet etc., estas peticiones son enviadas a travs de la red que
puede ir desde una red local hasta la internet y el que las enva generalmente es un
navegadorweb.

El navegador (cliente)solicita elrecursodeacuerdoalprotocoloHTTPyunavezquelellego


esta peticin al servidor apache, este se encarga de resolver la peticin, mandando una
respuestadeigualmaneraconformealprotocoloy envaelrecurso,encasodequenoexiste
o el cliente no puede tener acceso a el, entonces tambin apache es el encargado de
informaralclientequenosepuedeatenderesapeticin.

Laspeticiones(requests)semandanatravsdecomandos:

Comando

Descripcin

GET

SolicitaelrecursoubicadoenlaURLespecificada

HEAD

SolicitaelencabezadodelrecursoubicadoenlaURLespecificada

POST

EnvadatosalprogramaubicadoenlaURLespecificada

PUT

EnvadatosalaURLespecificada

DELETE

BorraelrecursoubicadoenlaURLespecificada

Lasrespuestasenviadasalclientetienenuncodigoderespuesta:

Cdigo

Mensaje

Descripcin

10x

Mensajedeinformacin

Estoscdigosnoseutilizanenlaversin1.0delprotocolo

20x

xito

Estoscdigosindicanlacorrectaejecucindelatransaccin

200

OK

Lasolicitudsellevacabodemaneracorrecta

201

CREATED

Sigue aun comando


POSTeindica elxito, laparterestantedel cuerpo
indica la direccin
URL donde se ubicar el documento creado
recientemente.

202

ACCEPTED

La solicitud ha sido aceptada,peroelprocedimientoquesiguenoseha


llevadoacabo

203

PARTIALINFORMATION

Cuando se recibe este cdigo en respuesta a un comando de


GET
indicaquelarespuestanoestcompleta.

204

NORESPONSE

El servidor ha recibido la solicitud, pero no hay informacin de


respuesta

205

RESETCONTENT

El servidor le indica al navegadorqueborreelcontenidoenloscampos


deunformulario

206

PARTIALCONTENT

Es una respuesta a una solicitud queconsiste en elencabezado


range
.
Elservidordebeindicarelencabezado
contentRange

30x

Redireccin

Estos cdigos indicanque elrecursoya noseencuentraen laubicacin


especificada

301

MOVED

Losdatossolicitadoshansidotransferidosaunanuevadireccin

302

FOUND

Los datos solicitados se encuentran en unanuevadireccinURL,pero,


noobstante,puedenhabersidotrasladados

303

METHOD

Significa que el cliente debe intentarlo con una nueva direccin es


preferiblequeintenteconotromtodoenvezde

GET

304

NOTMODIFIED

Si el cliente llev a cabo un comando


GET condicional(conlasolicitud
relativa a si el documento ha sido modificado desde la ltima vez) y el
documento no ha sido modificado, este cdigo se enva como
respuesta.

40x

Errordebidoalcliente

Estoscdigosindicanquelasolicitudesincorrecta

400

BADREQUEST

La sintaxis de la solicitud se encuentra formuladademanera errneao


esimposiblederesponder

401

UNAUTHORIZED

Los parmetrosdelmensaje aportanlasespecificacionesdeformularios


de autorizacin que se admiten. El cliente debe reformular la solicitud
conlosdatosdeautorizacincorrectos

402

PAYMENTREQUIRED

Elclientedebereformularlasolicitudconlosdatosdepagocorrectos

403

FORBIDDEN

Elaccesoalrecursosimplementesedeniega

404

NOTFOUND

Un clsico. El servidor nohallnada enla direccin especificada. Seha


abandonadosindejarunadireccinpararedireccionar...:)

50x

Errordebidoalservidor

Estoscdigosindicanqueexisteunerrorinternoenelservidor

500

INTERNALERROR

El servidor encontr una condicin inesperadaqueleimpideseguircon


lasolicitud(unadeesascosasquelessucedenalosservidores...)

501

NOTIMPLEMENTED

Elservidornoadmiteelserviciosolicitado(nopuedesaberlotodo...)

502

BADGATEWAY

El servidor que acta como una puerta de enlace o proxy ha recibido


unarespuestanovlidadelservidoralqueintentaacceder

503

SERVICEUNAVAILABLE

El servidor no puede responder en ese momento debido a que se


encuentra congestionado (todas las lneas de comunicacin se
encuentrancongestionadas,intntelodenuevomsadelante)

504

GATEWAYTIMEOUT

La respuesta del servidor ha llevado demasiado tiempo en relacin al


tiempo de espera que la puerta de enlace poda admitir (excedi el
tiempoasignado...)

Ahora apache2 tiene mejor rendimiento en windows en comparacin a sus versiones


anteriores, gracias al modulo
mpm_winnt ya que puede implementar funciones de red de
manera nativa y no usar la capa de POSIX del sistema operativo, en UNIX implementa
threadpool,worker,leaderyMPM(mdulosdemultiprocesamiento).

Adems, Apache2 tambin permite mltiples configuraciones para administrar los dominios,
para ello se hace uso de Virtual Hosts, que permiten correr en un solo servidor varios
dominios.Entrelasmltiplesconfiguracionesdelosvirtualhosttenemos:

Ejecutarmltiplessitioswebbasadosennombre,enunasoladireccinIP.
HostbasadosennombreenmsdeunadireccinIP.
Corrermltiplessitiosendiferentespuertos.
HostingvirtualbasadoenIP
HostingbasadoenIPypuertos.
Balanceodecargaatravsdemod_proxy.

VENTAJAS

Entrelasmltiplesventajasquetieneelservidorapachepodemosencontrar:

Configuracinpormodulos
Permitecrearservidoresvirtuales
Permitecrearservidoresseguroshttps
Permitecrearsitiosprivados
Creacindesitiosdeusuario
Multiplataforma,sistemasUNIX,OSX,Windows
Soporte
Cdigoabierto

IMPACTO EN EL MERCADO

Segnlapginaoficialdelproyecto
http://httpd.apache.org/
,apacheeselservidornmero
unoenInternet.

EnelconcursodelarevistadifundidaanivelmundialLinuxJournal,enelao2009,apache
fueelganadorporloslectores,siendoelservidorwebpreferidoporel89%delosmismos.

LENGUAJE UTILIZADO
ApacheWebServeresunproyectodesarrolladoenC,ForthyXML.

SISTEMAS OPERATIVOS SOPORTADOS

ApacheesunservidorwebquetienesoportemultiplataformaparasistemasUNIX,FreeBDS
yWindows.

SERVIDOR WEB VIRTUAL

ParalaconfiguracindelservidorvirtualutilizamoselprogramaVMWAREparala
virtualizacindelmismo.Suscaractersticassonlassiguientes:

SistemaOperativo:Ubuntu12.04LTS
15GBHDD
1GBRAM
Servidorweb:apache2

Paralosnodosqueparticipancomolosbackendsenelbalanceodecarga,setienenlas
siguientescaractersticas:

Nodo1:

SistemaOperativo:MACOSX10.9.2Mavericks
500GBHDD
7

4GBRAM
Servidorweb:ApacheTomcat7
ProcesadorIntelCorei52.4GHz

Nodo2:

SistemaOperativo:Ubuntu12.04LTS(VirtualizadoVMWARE)
15GBHDD
1GBRAM
Servidorweb:ApacheTomcat7

VIRTUAL HOSTS

TrabajarconHostsVirtualesconsisteenejecutarmsdeunsitiowebenelmismoservidor.
Mediante los hosts virtuales,Apache2 permitelaposibilidaddealojarvariosdominiosenuna
solamquina.
Deesa forma, cuando unapeticin entra enelservidorApache2desdeunnavegadorweb atravsde una
IP dada, Apache2 comprueba el nombre de dominio que se est solicitando y muestra el contenido
asociadoadichonombrededominio.
La utilizacin de hosts virtuales tiene como ventajas la versatilidad para crear diferentes sitios web
configurables el precio, ya que se necesita slo una mquina para alojar varios servidores web una
configuracin del sistema sirve para todos los servidores web se actualiza slo una vez y no requiere
ningnsoftwarenihardwareadicional.
Apachesoportadostiposdehostsvirtuales:

Hostsvirtualesbasadosennombres

Permitenalojarvariosnombresdehost(odominios)enunamismamquina(IP).Todos
loshostsvirtualesquecompartenlamismaIPdebendeclararsemedianteladirectiva
NameVirtualHost
.

HostsvirtualesbasadosenIP

UnamquinarespondedediferentemaneraadiferentesdireccionesIP.Esdecir,tenemos
mltiplesIPsasignadasalsistemayqueremosquecadaunadeellassoporteunsitioweb.

Paraladefinicindehostsvirtualesseutilizalaseccin
<VirtualHost>
yenellaseincluyenlasdirectivas
queseaplicanaundeterminadohostvirtual.Comomnimodebeincluirladirectiva
DocumentRooty
ServerName
.

MLTIPLES DOMINIOS

Creacin del sitio web.

Comoprimerpasorealizaremoslacreacindenuestrositioweb,elcualpondremosenla
siguientedireccin:
/var/www

Sedebecrearunacarpetadentrodeladireccinanterior,enlacualsealmacenarlas
pginaswebquemostraremos.
mkdirajedrez.org

Pararealizarlapruebasimplementeescribiremosunarchivohtml,dentrodelacarpeta
ajedrez.org,conelnombredeindex.html.

Redireccin local

Paraqueelnavegadornobusqueporinternetnuestrositio,ylolocalicelocalmentees
necesarioqueeditemoselarchivosiguiente:
/etc/hosts

Dentrodeestearchivopondremoslosiguiente,paraquebusqueennuestramquinaoenla
mquinadondeestelservidorapache.
IP
www.ajedrez.org
127.0.0.1
www.ajedrez.org
(Local)

Configuracin del VirtualHost

PorcadaVirtualHostquenecesitemosteneresnecesariorealizarlosiguiente:
Iraladireccin
/etc/apache2/sitesavailable
Crearelarchivodeconfiguracin,paranuestroejemploserajedrez.org
touchajedrez.org
9

Editarelarchivocreadoenelpasoanterior,agregandolosiguiente.
nanoajedrez.org

<VirtualHost*:80>
ServerName
www.ajedrez.org
DocumentRoot/var/www/ajedrez.org
</VirtualHost>
HabilitarVirtualHost

UnavezcreadoelarchivodeconfiguracincorrespondienteanuestroVirtualHostes
necesariohabilitarlo,paraqueapachesepaqueestdisponible.Paraelloesnecesario
ejecutarlosiguiente:
a2ensiteajedrez.org

Reiniciar el servidor

Finalmenteserequierereiniciarelservidorapache,paraquecarguelanuevaconfiguracin
quehemosrealizado,paraelloejecutamos:
/etc/init.d/apache2reload

Ypodremosaccederalnavegadoryejecutarladireccin
www.ajedrez.org
,elcualnos
mostrarloquehayamospuestoennuestrodocumentoindex.html.

MLTIPLES DIRECCIONES

Si se tiene unsistemaque disponede varias direccionesIP yse quiere que cada una de ellassoporteun
sitiowebsedebercrearunaseccinvirtualparacadadireccinIP.
Eneste casolos servidores virtualesdefinidosreciben las solicitudesen funcin delaIPrequerida,nodel
nombredelservidor.
Si no se dispone de un equipo con varias interfaces de red se puede probar creando aliasde la tarjeta
disponible.
Paraellohayqueeditarelarchivointerfacesaadiendolosiguiente:
/etc/network/interfaces

10


autoeth0:0
ifaceeth0:0inetstatic
addressIP_nuevaporejemplo192.168.1.2
netmask255.255.255.0
network192.168.1.0

Seestcreandounaliasdelatarjetaetherneteth0yseleasignalaIP192.168.1.2.Sesuponequelatj
eth0tieneIP192.168.1.1.
Apartirdeestemomentoelsistemayadisponede2interfacesdered,unarealyunaliasquepermite
definirunhostvirtualalojadoenelmismoservidorweb
.
PararealizarestaconfiguracinrepetimoselprocesodelacreaciondeunHostVirtualdescrita
anteriormenteperoahoraelarchivodeconfiguracindentrode
sitesavailable
:

<VirtualHost192.168.1.2>
ServerNamevirtual.dominio.com
DocumentRoot/var/www/virtual
ErrorLog/var/log/apache2/virtualerror.log
</VirtualHost>

Tambinesposibleconfigurarhostsvirtualesmixtos,esdecirbasadosennombresyenIP.

Host virtual basado en puertos


Vamos a suponer que, para una misma direccin IP, el servidor web quiere mostrar diferentecontenido
segnelpuertoenelqueserealizalaconexinHTTP.
Para ellohabrqueindicaren la seccin
<VirtualHost>
yenNameVirtualHost
elpuertoasociadoytodos
lospuertosutilizadosparaatenderpeticionesdebenestarListen.

NameVirtualHost192.168.1.1:80

<VirtualHost192.168.1.1:80>
ServerNameservidor.dominio.com
DocumentRoot/var/www/servidor80
</VirtualHost>
<VirtualHost192.168.1.1:443>
ServerNameservidor.dominio.com
DocumentRoot/var/www/servidor443
11

</VirtualHost>

En este caso el acceso al servidor web, si se llama igual, debe incluir el puerto porel cualserealizala
peticinHTTP.EnlaURLhabrqueescribir:
http://servidor.dominio.com:443/
Si se utiliza un puerto diferente al 80 (por defecto) hay querevisarelarchivo
/etc/apache2/ports.conf
e
incluirlaslneas
Listen
correspondientesalosnuevospuertosdeescuchadeApache2.

SERVIDOR WEB CON RESTRICCIONES DE USUARIOS

RespectoalprocesodeAutenticacindeusuariosenApache2existendosmtodos:
Bsico o Simple: el usuario en el navegador web introduce su login o nombre de
usuarioycontraseayseenvanalservidor
sincifrar
.
Digest: el usuario enel navegadorweb introducesulogin y contraseayseenvanal
servidor
cifrados
.
Estos dos mtodos slo autentican al usuario cuando intenta acceder a un recurso.
Pero en ninguno de los dos mtodos los datos que a continuacin se envan del
navegador web al servidor o viceversa van cifrados. Son mtodos que
controlan el
acceso a los recursos
, pero
no protegen la informacin intercambiada en la
comunicacinclienteservidorunavezsehacomprobadoqueelaccesoesvlido.
Autenticacin Bsica

Esta autenticacinguardalosusuariosysuscontraseaencriptadasenunarchivo.Los
usuarios y contraseas se tienen que ir metiendo uno a uno. Este mdulodeapache
viene activadopor defecto.Parautilizarlo en nuestrapginaaadiremoslassiguientes
lneasalarchivodeconfiguracinen
/etc/apache2/sitesavailable

AuthTypebasic
AuthNameIdentifiquese
AuthUserFile/etc/apache2/passwd/passwords
Requirevaliduser

12

Unejemplodeintegracinseraelsiguiente:

<VirtualHost*:80>
ServerName
www.ajedrez.org
DocumentRoot/var/www/ajedrez.org

<Directory/var/www/ajedrez.org>
AuthTypebasic
AuthNameIdentifiquese
AuthUserFile/etc/apache2/passwd/passwords
Requirevaliduser
</Directory>
</VirtualHost>

AuthTypebasic:
Leespecificamosqueesautenticacinbsica.
AuthName Identifquese :
Este ser el mensaje que nos aparecer al pedir la
contrasea.
AuthUserFile:
Estaeslaubicacindelficheroconlosusuariosysuscontraseas.
Require validuser: Le indicamos que requiere un usuario vlido. Tambin se podra
ponerunoovariosusuariosponiendoporejemploRequireuserjuan,jose,maria.

Por ltimo para crear el archivo donde se guardan los passwords, utilizamos el
comando
htpasswd
.

La primera vez que lo utilicemos tenemos que ponerle la opcin c, para crear el
archivo.
Agregamoselusuariomediante:
htpasswdc/etc/apache/passwd/passwordsusuario

Newpassword:
Retypenewpassword:

Siqueremosaadirotrousuarionolepondremoslaopcinc.

Si ahora intentamos acceder a nuestra pgina nos se nos solicitar el usuario y la


contraseasealada.

13

SERVIDOR WEB CON BALANCEO DE CARGA

El balanceo de carga en un servidor web permite crear un sistema de alta


disponibilidad que evita las cadas de los servicioscon elobjetivo deestar elmximo
tiempoposibleactivosparalosusuario.

Cuando una pagina oaplicacionweb comienzaarecibir un gran nmero de visitantes


esimportante repartir lacargade trabajo en dos omsservidores,graciasalbalanceo
decargaque ofrece Apache,el cual integra soportedesesindecadausuario(estoes
que si un usuario es redireccionado a otro servidor del sistema no cambia
aleatoriamenteaotrosservidores).

seutilizandiversosalgoritmosdeorganizacinperolosmsutilizadosson:
ROUND ROBIN
: los usuarios son repartidos aleatoriamente por los servidores
quecomponenelsistema
IPHASH
: las direcciones ip de los visitantes son comparadas con una tabla
definidaenelservidorydependiendodesuexistenciasonredirigidos
LEAST CONNECTIONS
: el recurso de cada servidor es detectado
automticamenteyseefecta unredireccionamientodecadausuarioal servidor
commasrecursosdisponibles.

Desde la versin 2.2 de Apache tiene elmdulo proxy_balancerdestinado acrear un


sistemadebalanceodecarga,paraelloesnecesarioactivar:

1) a2enmod proxy: habilita el uso de un proxy destinado al direccionamiento de los


visitantesalosservidoresweb.

2)a2enmodproxy_balancer:implementaelfuncionamientoparaelbalanceodecarga.

3)a2enmodproxy_http:aadesoportealproxiparalaspeticioneshttp.

Unvezinstaladoyactivadoelmoduloenapache,necesitamosrealizarlaconfiguracinpara
realizarelbalanceo(/etc/apache2/sitesavailable)dentrodeunVirtualHost.Teniendola
estructuracomosigue:

<VirtualHost*:80>
14

Servernamewww.balanceo.com

ProxyRequestsOff

ProxyPassReverse/http://192.168.189.155:8080
ProxyPassReverse/http://192.168.1.65:8080

<Proxybalancer://testcluster>

BalancerMemberhttp://192.168.189.155:8080/balanceoroute=nodo1

BalancerMemberhttp://192.168.1.65:8080/balanceoroute=nodo2

ProxySetlbmethod=byrequests
</Proxy>

ProxyPass/balancermanager!
ProxyPass/balancer://testcluster/nofailover=On

<Location/balancer_manager>

SetHandlerbalancermanager

Orderdeny,allow

Allowfromall
</Location>
</VirtualHost>

Para configurar cada uno de los servidores es necesario configurar el archivo


server.xmlubicadoeneldirectorioconfdecadaservidortomcat.

Primeroesnecesariohabilitarlasiguientelnea
<Enginename=CatalinadefaultHost=localhostjvmRoute=nodo1>

donde
nodo1 es la ruta del protocolo jvm para el balanceador. Para el tomcat2 ser
nodo2. Luego es necesario desactivar la lnea de la implementacin del clster del
servidor
<ClusterclassName=org.apache.catalina.ha.tcp.SimpleTcpCluster/>

Porltimoseguardaelarchivoysereiniciaelservidor.

15

SERVIDOR WEB CON SEGURIDAD HTTPS

Apache nospermitecrearsitiosconseguridadhttps,esto es, queelclientequeenvadatosa


travs de la red estncifrados yno sean susceptibles a que sialgunatercerapersonalogra
capturarlospuedahacerusomalintencionadodelosmismos.

Para la implementacin, necesitamos habilitar el mdulo SSL (Secure Sockets Layer) para
apache y obtener un certificado que est firmado con el fin de poder distribuir una llave
pblica. Este certificado debe de tener unafirmaqueennuestrocasoserautofirmada,pero
se puede pagar la firma de nuestro propio certificado a empresas comoVeriSign para que
seareconocidoenlosnavegadoreswebmodernos.

Creandoelcertificado

Para la creacin del certificado haremos uso de la aplicacin open ssl, en la terminal
ejecutamoslosiguiente:

opensslgenrsaoutca.key1024

EnlaculestamosindicandoengenrsaqueutiliceelalgoritmoRSAcon1024bits.

Ahora generamos el CSR (Certificate Signing Request), que crea una entidad parapedirlea
unaterceraquelofirme,verificandoasquelosdatosdelaprimeraentidadsoncorrectos.

Enconsola:
opensslreqnewkeyca.keyoutca.csr

Debido a que no contamos con recursos para pagar la firma del certificado, nos lo
autofirmamos:

opensslx509reqdays365inca.csrsignkeyca.keyoutca.crt

Dondeelparmetrodaysespecificaeltiempodevalidezdelcertificado,enestecasounao.

Ahora, procedemos a mover los archivos creados a la ruta donde sern lozalizados con
apache:

mvca.crt/etc/ssl/certs
mvca.key/etc/ssl/private/ca.key
mvca.csr/etc/ssl/private/ca.csr

16

En el servidor apache hay que activar el mdulo SSL, para ello nos movemos a la carpeta
sitesavailabledeapacheycreamosunarchivoconlaconfiguracinquesedescribeabajo.

cd/etc/apache2/sitesavailable
touchsslconf
nanosslconf

Enelarchivossconf:

NameVirtualHost*:443

<VirtualHost*:443>
SSLEngineon
SSLCertificateFile/etc/ssl/certs/ca.crt
SSLCertificateKeyFile/etc/ssl/private/ca.key

AllowOverrideAll

DocumentRoot/var/www/sitiohttps
ServerNamesitiohttps.com
</VirtualHost>

Guardamosycerramoselarchivoylohabilitamos:

en2sitessconf

Porltimoreiniciamoselservicio:

sudo/etc/init.d/apache2restart

Conestopodemosentraralnavegadoreintroducireldominiodenuestrositioconelprefijo
https://.Cabesealarquealabrirlapginanossaldrunmensajedeavisosobreel
certificadoyaque,comoesautofirmadoelnavegadornoloreconoceylointerpretacomono
vlido.

MONITOREO DE RECURSOS CON MUNIN


Munin es una herramienta multiplataforma basada en
web, utilizadaen el monitoreo

de los recursos en red. Las principales caractersticas de esta herramienta son las
siguientes:
17

Cuentaconunainterfazwebquemuestraelusoderecursoshistricamente.
Monitoreacadamquinaconfiguradaenelarchivomunin.conf.
Losprincipalesrecursosmonitoreadossondisco,red,CPU,RAM,entreotros.
Genera grficas por da, semana, mes y ao de cada uno de los recursos
monitoreados.
Esposibleconfigurarumbralesdealertaparaestadodeadvertenciaycrtico.

La herramienta de munin esta desarrollada bajo el lenguaje de programacin perl,


utilizando RRDtool para la construccin de grficas este software tiene una licencia
GNU.

ESTRUCTURA DE MUNIN

Muninseencuentraconformadoportrescomponentesprincipales.
Servidor
: Un demonio que corre en todas las mquinas monitoreadas, por
default en el puerto 4949. Su funcin es configurar y llamar a los plugins.
Cuandosehablademuninnode,serefierealservidor.

Plugins
: Cada uno de los agentes de recoleccin dedatos queson invocados
por muninnode. Dan lainformacinque monitorean,ysontambin capaces de
describirsufuncinyconfiguracin.

Cliente
: Proceso que corre peridicamente (normalmente cada 5 minutos)
desdeun nodo central, interrogandoacadaunodelosservidoresmuninnode,y
generandolaspginasWeb.

INSTALACIN Y CONFIGURACIN

que se ha hablado acerca de apache y su configuracin, realizaremos un


monitoreo de los recursos que este ocupa utilizando esta herramienta como ya
tenemos instalado apache en nuestra mquina solo queda la instalacin de los
paquetesdemunin,queserealizarconelsiguientecomando,tomandoencuentaque
seestatrabajandoconelsuperusuarioroot.

Ya

aptgetinstallmuninmuninnode

ConestotendremoslistoelServidoryunnodoquerepresentaalaestructuracliente.
18

Despues pasamos a la configuracin de la herramienta, como primera configuracin


editaremos el archivo
/etc/munin/munin.conf
de tal manera que se aproxime a lo
siguiente:

dbdir/var/lib/munin
htmldir/var/cache/munin/www
logdir/var/log/munin
rundir/var/run/munin
#
#WheretolookfortheHTMLtemplate
tmpldir/etc/munin/templates
#asimplehosttree
[server.org]
address192.168.1.65
use_node_nameyes

EstoesnecesarioyaqueseleindicaaMuninlosdirectoriosdetrabajo.
Luego especificamos las direcciones ip de los nodos a monitorear. Para configurar
nuestro nodo, es decir, la parte de Munin que recoge losdatos, editaremosel fichero
/etc/munin/muninnode.conf.

log_level4
log_file/var/log/munin/muninnode.log
pid_file/var/run/munin/muninnode.pid

background1
setsid1

userroot
grouproot

ignore_file~$
ignore_fileDEADJOE$
ignore_file\.bak$
ignore_file%$
ignore_file\.dpkg(tmp|new|old|dist)$
ignore_file\.rpm(save|new)$
ignore_file\.pod$

host_namehost.mydomain.com

allow^127\.0\.0\.1$
allow^192\.168\.1\.65$
allow^192\.168\.1\.21$

host*

19

host127.0.0.1
host192.168.1.65
host192.168.1.21

port4949

Esteesnuestroarchivoconfiguradoconlosnodoscorrespondientes.

Despues de haber realizado la configuracin del servidor, solo queda dar inicio al
servicio,estoserealizarmedianteelsiguientecomando:

servicemuninnodestart

Parareiniciarelserviciotenemoselsiguientecomando:

servicemuninnoderestart

Paradetenerelserviciobastaconteclearlosiguiente:
servicemuninnodestop

Paraaadirotrosclientessolotenemosque instalarelnododelasiguientemaneraen
lamquinaquesedeseamonitorear.
aptgetinstallmuninnode

Ahoratansolotenemosqueeditarelarchivomuninnode.confdelasiguienteforma:

log_level4
log_file/var/log/munin/muninnode.log
pid_file/var/run/munin/muninnode.pid
background1
setsid1
userroot
grouproot
#Regexpsforfilestoignore
ignore_file~$
#ignore_file[#~]$#FIXdoesn'twork.'#'startsacomment
ignore_fileDEADJOE$
ignore_file\.bak$
ignore_file%$
ignore_file\.dpkg(tmp|new|old|dist)$
ignore_file\.rpm(save|new)$
ignore_file\.pod$
#Setthisiftheclientdoesn'treportthecorrecthostnamewhen

20

#telnettingtolocalhost,port4949
#
host_nameserver.org
#Alistofaddressesthatareallowedtoconnect.Thismustbea
#regularexpression,sinceNet::ServerdoesnotunderstandCIDRstyle
#networknotationunlesstheperlmoduleNet::CIDRisinstalled.You
#mayrepeattheallowlineasmanytimesasyou'dlike
#allow^127\.0\.0\.1$
allow^192\.168\.1\.65$

#IfyouhaveinstalledtheNet::CIDRperlmodule,youcanuse
#multiplecidr_allowandcidr_denyaddress/maskpatterns.A
#connectingclientmustmatchanycidr_allow,andnotmatchany
#cidr_deny.Example:
#cidr_allow127.0.0.1/32
#cidr_allow192.0.2.0/24
#cidr_deny192.0.2.42/32
#Whichaddresstobindto
#host*
host192.168.1.21
#Andwhichport
port4949

Enallowponemoslaipdelservidormunin
Enhostponemoslaipdeestenodo

Ahoravamosdevuelta otravezal servidor y definimosen elarchivomunin.confeste


nodo:

[server2.org]
address192.168.1.21
use_node_nameyes

reiniciamoscon:
servicemuninnoderestart

Ahora resta obtener los datos del servidor apache, para esto es necesariocrear un
virtualhostdelasiguientemanera:

Primerocreamosundirectorioenelservidordeapache:

mkdir/var/www/server.org

Luegoescribimoselhostenelarchivo
/etc/hosts
delasiguientemanera:
21


192.168.1.65server.org


Ahora vamos a crear el archivos de configuracin para cada el VirtualHost. Lo

crearemos dentro de
/etc/apache2/sitesavailable con el nombre de la pgina para
distinguirlos fcilmente en este caso sera
server.org
dentro de este archivo
escribiremoslosiguiente:

<VirtualHost*:80>
ServerAdminwebmaster@server.org
ServerNameserver.org
DocumentRoot/var/cache/munin/www
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
LogLevelnotice
CustomLog/var/log/apache2/access.logcombined
ErrorLog/var/log/apache2/error.log
ServerSignatureOn
</VirtualHost>

Una vez que hemos creado el archivo VirtualHost solamente nos queda habilitarlo
para ello utilizaremos el comando
a2ensite server.org
dentro de la carpeta
/etc/apache2/sitesavailable
. FInalmente se ejecutalo siguiente para cargarlosdatos
enapache:

serviceapache2reload


Ahoraasignaremos eltiempoque tardar muninparaobtenerlosdatosygraficarlos,
paraestoejecutaremoselsiguientecomando

sudoumunincrontabe


Y agregaremos la siguiente lnea, con la cual obtendremos estos datos cada 5

minutos.

#mhdommondowcommand
*/5****munincron

22

Realizado lo anterior ya se puede ingresar al directorio de munin en el servidor de


apacheingresandoalasiguientedireccin:

http://direccin_ip/munin

En la direccin se mostrar un resultado parecido a lo mostrado en la Figura 1, con


estoyatenemosinstaladalaherramienta,paratrabajarconella.

Figura1.HerramientaMuninenApache.

INSTALACIN DE PLUGINS

Pararealizarelmejormonitoreoposibleconestaherramientaexisteloscomplementos
extra, estos son los plugins quenospermite incrementarlas caractersticas demunin,
estos se puedenencontrar enla webosepuedenrealizar en ellenguajeperlporotra
parteparainstalarlosesnecesarioseguirlossiguientespasos:

Primero se crear el archivo con el nombre del plugin en el directorio


/usr/share/munin/plugins/plugname con el codigode ejecucion, luegosecrearun
enlace simblico a la carpeta
/etc/munin/plugins/plugname con el comando
ln s
quedandodelasiguienteforma:

lns/usr/share/munin/plugins/plugname/etc/munin/plugins/plugname

Despus de crear elenlace simblicoprocedemosala asignacinde permisos dela


siguientemanera:
23


chmod755/etc/munin/plugins/plugname

Luego procederemos a ingresar los siguientes datos en el archivo de configuracin


/etc/munin/pluginconf.d/muninnode.

[plugname]
userroot
env.warning50
env.critical65
#optionsenv.procs,env.USERS,etc

Como se puede observar el plugin se puede configurar condistintas opciones, en


este caso existen dos muy importante las cuales nos generan avisos acerca de un
consumoexcesivoderecursos,talesopcionesson
env.warning
y
env.critical
.

Despus ejecutaremos el siguiente comando con el cual configuraremos el plug,


algunos plugins no necesitan los parmetros
autoconf
o
config,
pero otros siguen el
siguienteformato:

/etc/munin/plugins/plugnameconfig
/etc/munin/plugins/plugnameautoconf

Finalmentesereinicianlosserviciosdemuninyapache,ahorasoloquedaesperarun
pocodetiempoparaquemuninobtengalosrecursosqueelpluginestamonitoreando.

servicemuninnoderestart

serviceapache2restart

PRUEBAS Y RESULTADOS

Comoprimeraspruebassehautilizadolaaplicacin
ApacheBench
lacualesuna
herramientaquenospermitemedirelrendimientodesuservidor,detalformaque
crearemosunpooldeconexionesalservidorapache,paraquemunincapturelosdatos
deconsumoderecurso,pararealizarestoejecutaremoslosiguiente:

abn8000000c10
http://192.168.1.65/

24


Con estolo queestamos realizando es unaconexinde8000000declientesen10

hilos a la direccion
http://192.168.1.65/ donde tenemos alojada nuestra pagina WEB,
despus de haber realizadoestotenemoslafigura2dondese muestralosaccesospor
dia al servidor apache, que es aproximado a las peticiones que hemos hecho con
ApacheBench.

Figura2.AccesospordaalservidorApache.

Enlafigura3semuestralosdatosobtenidospormunincorrespondientealacantidad
deprocesosde apache enundeterminadotiempo,seobserva unpequeoperiodode
una cantidad considerable deprocesosestoesacausa de laspeticionescreadaspor
partedeApacheBench.

25


Figura3.ProcesosdeApacheconpeticionesdeconexin.

Ahora en la figura 4 se observa el porcentaje de uso del cpu por parte de los
procesosdeapacheenelperiododetiempoendondesevenaltosporcentajesdeuso
decpuesdebidoalosclientesgeneradosporApacheBench.

Figura4.PorcentajedeusodelCPUporpartedeApache.

26

Porotra parte otro recursomonitoreadoesel consumo dememoria RAM, elcualse


muestraenlafigura5,semuestranicamenteelusodememoriaporpartedelservidor
apache2 que crece en porcentajesdeusodebidoalaspeticionescreadasporpartede
ApacheBench.

Figura5.SegmentodeMemoriaRamutilizadaporApache.

FInalmente se muestraenlafigura6lospaquetesrecibidosporpartedelatarjetade
redcorrespondientealfirewalldeapache.

Figura6.PaquetesrecibidosyenviadosporminutoporApache.
27

Para realizar la correcta configuracin de los niveles crticos y de warnings en el


servidor, se ha deconfigurar el archivo
/etc/munin/munin.conf
agregandoladireccion
de correo electronico a la cual enviar la notificacin, por otra parte seasignaran los
niveles
de
warning
y
critical
siguiendo
el
siguiente
formato
pluname.variable.{critical,warning} valor
,parael correo se agregaran lassiguientes
lineasalarchivo:

contact.me.commandmails"Muninnotification${var:host}"user@host.tld
contact.me.always_sendwarningcritical

Finalmente nos hemos tomado la tarea de llevar elservidoraun punto crtico, para
que la herramienta Munin nos de un aviso, para estohemosde crear15hiloscon 10
000 000 de clientes en ApacheBench tomandocomorecurso el porcentaje de usode
cpu, colocando un niveldewarningdel160%yunnivelcrticodel180%.Losresultados
obtenidos se muestran enlafigura7,enlacualsemuestraquesehasuperadoniveles
warning y enla figura 8 se muestrala notificacin de un warning enel usodelcpupor
elservidordeapache.

Figura7.Servidorsuperandousoderecursos.

28


Figura8.Notificacionesdewarning.

29

Das könnte Ihnen auch gefallen