Está en la página 1de 7

UNIVERSIDAD POPULAR DE NICARAGUA FACULTAD DE INFORMTICA

INGENIERA WEB
CGI Y SERVIDOR VIRTUAL EN APACHE

NOMBRE:

Bismarck Oswaldo Ramirez Membreo


GRUPO: Ma-ICS-02-08-4205 TURNO: DOMINICAL DOCENTE: Ing. Danny Chvez

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).

Variables que se pasan a un programa CGI

Variables de entorno que se intercambian de servidor a CGI:


SERVER_SOFTWARE - nombre / versin del servidor HTTP. SERVER_NAME - nombre de host del servidor, puede ser de punto decimal de direcciones IP. GATEWAY_INTERFACE - CGI / versin.

Variables de entorno que se intercambian de cliente a CGI:


SERVER_PROTOCOL - HTTP / versin. SERVER_PORT - el puerto TCP (decimal). REQUEST_METHOD - nombre del mtodo HTTP. PATH_INFO - Informacin adicional de la ruta (el "path") tal y como llega al servidor en el URL. Pgina 2

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

Servidor Virtual en Apache


En el caso de Apache los servidores virtuales o Virtual Hosting es la facilidad de administrar ms de un sitio de una manera sencilla y eficiente en un solo Host, ejemplo: En la configuracin de httpd.conf en ServerName se indica el nombre del sitio que administra Apache, si despus pretende administrar el contenido para: xml.otrositio.com y clientes.com esto no necesariamente implica que debe instalar Apache dos veces ms, ni tampoco que debe instalar dos ordenadores para administrar estos sitios nuevos; lo anterior se resuelve fcilmente a travs de Virtual Hosting.

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

el segundo Virtual Host con documentacin www.elnica.gob del directorio /www/gobierno

del

directorio

/www/beneficio

Los dems valores


Otro detalle de la configuracin anterior es que dentro de cada Virtual Host no se declaran los mismos parmetros, el Virtual Host www.otrositio.com define que sus errores deben ser enviados a /www/otrositio/log_errores mientras www.clasefiu.org define el parmetro DirectoryIndex y los dems Virtual Hosts no. De donde toman los valores no definidos los Virtual Hosts? , De los parmetros definidos por fuera de cada seccin, esto es, se asume que si dentro de cada seccin de Virtual Host no se define un parmetro especfico se toma el valor global definido en httpd.conf Si el valor ErrorLog (global) tiene el valor de /usr/apache/errors_log todo error de cualquier sitio ser enviado a esta seccin siempre y cuando no haya sido definido dentro de VirtualHost. El mismo caso seria para DirectoryIndex, CustomLog y los dems parmetros disponibles en httpd.conf. Finalmente en la configuracin se puede observar que nuestros amigos de gobierno en www.burocratas.gob requieren tener su propio directorio de Scripts, mientras los dems sitios pueden compartir aquel valor definido globalmente en ScriptAlias.

Ingeniera Web

Pgina 6

También podría gustarte