CGI y Servidor Virtual Apache
CGI y Servidor Virtual Apache
CGI y Servidor Virtual Apache
INGENIERA WEB
CGI Y SERVIDOR VIRTUAL EN APACHE
NOMBRE:
FECHA: 16/10/2011
Contenido
CGI ....................................................................................................................................................... 2 Proceso de un CGI ........................................................................................................................... 2 Variables que se pasan a un programa CGI..................................................................................... 2 Variables de entorno que se intercambian de servidor a CGI: ................................................... 2 Variables de entorno que se intercambian de cliente a CGI:...................................................... 2 Tipos de CGIs ................................................................................................................................... 3 Servidor Virtual en Apache.................................................................................................................. 4 Mdulo Proxy .................................................................................................................................. 4 Configuracin DNS .......................................................................................................................... 4 httpd.conf........................................................................................................................................ 4 NameVirtualHost , VirtualHost........................................................................................................ 4 Los dems valores ........................................................................................................................... 6
Ingeniera Web
Pgina 1
CGI
CGI especifica un estndar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicacin entre el servidor web y una aplicacin externa cuyo resultado final de la ejecucin son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs. En una aplicacin CGI, el servidor web pasa las solicitudes del cliente a un programa externo. Este programa puede estar escrito en cualquier lenguaje que soporte el servidor, aunque por razones de portabilidad se suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente en lugar del archivo esttico tradicional.
Proceso de un CGI
1. En primera instancia, el servidor recibe una peticin (el cliente ha activado un URL que contiene el CGI), y comprueba si se trata de una invocacin de un CGI. 2. Posteriormente, el servidor prepara el entorno para ejecutar la aplicacin. Esta informacin procede mayoritariamente del cliente. 3. Seguidamente, el servidor ejecuta la aplicacin, capturando su salida estndar. 4. A continuacin, la aplicacin realiza su funcin: como consecuencia de su actividad se va generando un objeto MIME que la aplicacin escribe en su salida estndar. 5. Finalmente, cuando la aplicacin finaliza, el servidor enva la informacin producida, junto con informacin propia, al cliente, que se encontraba en estado de espera. Es responsabilidad de la aplicacin anunciar el tipo de objeto MIME que se genera (campo CONTENT_TYPE).
Ingeniera Web
PATH_TRANSLATED - correspondiente ruta completa como se supone por el servidor, si PATH_INFO est presente. SCRIPT_NAME - ruta relativa al programa, como / cgi-bin/script.cgi. QUERY_STRING - Es la cadena de entrada del CGI cuando se utiliza el mtodo GET sustituyendo algunos smbolos especiales por otros. Cada elemento se enva como una pareja Variable=Valor. Si se utiliza el mtodo POST esta variable de entorno est vaca. REMOTE_HOST - nombre de host del cliente, sin establecer si el servidor no ha realizado operaciones de bsqueda tales. REMOTE_ADDR - la direccin IP del cliente (punto decimal). AUTH_TYPE - identificacin del tipo, si es aplicable. REMOTE_USER utilizadas para ciertas AUTH_TYPE s. REMOTE_IDENT - slo si el servidor realiza operaciones de bsqueda tales. CONTENT_TYPE - Tipo MIME de los datos enviados al CGI mediante POST. Con GET est vaca. Un valor tpico para esta variable es el encabezado HTTP. CONTENT_LENGTH - Del mismo modo, el tamao de los datos de entrada (decimal, en octetos) si se proporciona a travs de encabezado HTTP. Variables que se pasan por el agente de usuario (HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, HTTP_USER_AGENT, HTTP_COOKIE y posiblemente otras) contienen los valores de las correspondientes cabeceras HTTP y por lo tanto tienen el mismo sentido.
Tipos de CGIs
Contador de accesos: Cuenta el nmero de veces que se ha solicitado una pgina determinada. Se guarda el valor en un fichero. Cada vez que se invoca se incrementa, para su posterior visualizacin. Buscador: Localiza pginas que contengan los trminos especificados. Utiliza una tabla que enumera las palabras y para cada una especifica las pginas dnde se encuentra. Correo: Obtiene informacin estructurada del usuario. Contribuciones: Permite aadir enlaces o anotaciones a una pgina, indicando la procedencia de la adicin. Estadsticas de uso: Presenta informacin sobre los acontecimientos producidos en el servidor de WWW. El servidor mantiene un registro (log) de los acontecimientos que se han producido. Administracin remota del servidor: Permite interactuar con el servidor desde WWW. Invoca los programas que controlan o modifican el comportamiento del servidor.
Ingeniera Web
Pgina 3
Mdulo Proxy
El primer paso es verificar que Apache sea capaz de utilizar Virtual Hosting, para esto se requiere que el mdulo proxy este habilitado, si ejecuta el comando httpd -l debe aparecer una linea con mod_proxy.c, de no ser as, entonces debe instalar este mdulo; en Mdulos de Apache se describe el procedimiento.
Configuracin DNS
Esta configuracin es parte critica de cualquier servidor virtual, de otra manera no sera posible atender las requisiciones de los diversos sitios en Internet. Sin embargo, si solo requiere realizarlo en un ambiente local es posible modificar /etc/hosts e incluirle los distintos sitios: 127.0.0.1 www.otrositio.com 127.0.0.1 www.clasefiu.org 127.0.0.1 www.elnica.gob Lo anterior permite al Resolver del Host identificar que cualquier solicitud para www.otrositio.com, www.clasefiu.org, www.elnica.gob sea enviada a la maquina local (127.0.0.1).
httpd.conf
La configuracin del archivo /etc/hosts o DNS no servira de mucho si al llegar la requisicin al Host no supiera que hacer con estas, para esto es necesario realizar las modificaciones al archivo principal de Apache httpd.conf. En una instalacin de Apache con un solo sitio se emplea el parmetro ServerName para indicar el sitio al cual se esta administrando informacin, sin embargo, cuando se requiere administrar varios sitios se utiliza el parmetro VirutalHost.
NameVirtualHost , VirtualHost
El primer paso para configurar Virtual Hosting es eliminar (comentar) el parmetro ServerName y substituir lo por NameVirtualHost. Ingeniera Web Pgina 4
#ServerName www.otrositio.com Port 80 NameVirtualHost 127.0.0.1 Posteriormente es necesario definir las respectivas secciones para cada VirtualHost <Virtual Host 127.0.0.1> ServerName www.otrositio.com DocumentRoot /www/otrositio/ ErrorLog /www/otrositio/log_errores </Virtual Host>
<Virtual Host 127.0.0.1> ServerName www.clasefiu.org DocumentRoot /www/beneficio/ DirectoryIndex ayuda.htm, index.htm </Virtual Host>
<Virtual Host 127.0.0.1> ServerName www.elnica.gob DocumentRoot /www/gobierno/ ScriptAlias /cgi-bin/ "/usr/local/impuestos/" </Virtual Host> El primer detalle de cada Virtual Host es que sus definiciones se encuentran delimitadas por <Virtual Host 127.0.0.1> y </Virtual Host> (este es un ejemplo bsico del uso de XML); el nodo IP 127.0.0.1 debe coincidir precisamente con aquel definido en NameVirtualHost. Notar que dentro de cada definicin se encuentran parmetros que ya se mencionaron en la configuracin inicial de Apache, y son estos parmetros los que rigen el comportamiento de cada sitio. El primer Virtual Host indica que toda solicitud para www.otrositio.com debe ser respondida con documentacin del directorio /www/otrositio; Ingeniera Web Pgina 5
del
directorio
/www/beneficio
Ingeniera Web
Pgina 6