Está en la página 1de 10

1. Descripcin de directivas en archivos de configuracin de apache.

El fichero de configuracin principal La configuracin de Apache se realiza mediante unas directivas escritas en ficheros de texto que se leen al iniciar el servidor web, el fichero de configuracin principal suele llamarse httpd.conf. Podemos escoger un directorio concreto para el fichero de configuracin principal compilando Apache con la opcin -f, por defecto, encontraremos este fichero en carpetas diferentes dependiendo del sistema operativo: Windows: <apache>/conf/httpd.conf Linux: <base de la instalacion>/etc/apache/httpd.conf Desde este fichero podemos cargar otros ficheros de configuracin usando la directivaInclude. Los ficheros de configuracin descentralizados Los ficheros de configuracin descentralizados nos permiten configurar el servidor HTTP a nivel de directorio siempre y cuando nos lo permita la directiva AllowOverride. Por motivos de rendimiento usaremos nicamente estos ficheros cuando no tenemos acceso al fichero de configuracin principal. El nombre de los ficheros de configuracin distribuidos se puede definir con la directivaAccessFileName y ser por defecto .htaccess, situaremos el fichero en el mismo directorio en el que queremos que haga efecto, y sus directivas se extendern a todos sus subdirectorios. Las directivas de .htaccess prevalecen frente a las de los ficheros de configuracin principal, asimismo, las directivas de un directorio sobrescribirn las de su directorio padre Una directiva de configuracion de Apache es una palabra que indica que paramerto de configuracin queremos modificar, podemos escribir directivas directamente en el fichero de configuracin para que tengan efecto en todo el servidor o en el interior de una seccin de configuracin. Para escribir una directiva, pondremos el nombre de la directiva (sin importar maysculas) seguido de sus parmetros en una lnea del fichero, es importante que la misma lnea incluya solamente una directiva o comentario y nunca uno o varios de cada, veamos un ejemplo sencillo:

000

DocumentRoot /usr/web

Para escibir una directiva que queremos que ocupe ms de una lnea, deberemos indicar que la directiva contina en la siguiente lnea poniendo una contrabarra ( \ ) cmo ltimo carcter de la

lnea:

000 001

DocumentRoot \ /usr/web

Podemos dejar lineas en blanco sin ningn problema igual cmo tambien podemos y es recomendale tabular y dejar espacios delante de las directivas para hacer la configuracin ms clara. Las directivas que podemos usar dependen de los mdulos que tenemos instalados por defecto, en este manual veremos las directivas ms comunes del modulo core (modulo principal con las funciones bsicas del servidor) y algunas de las ms importantes de otros mdulos.--

2. Descripcin del proceso de comunicacin entre servidor web/Cliente web

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus caractersticas son:

Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicacin (dispositivo maestro o amo). Espera y recibe las respuestas del servidor. Por lo general, puede conectarse a varios servidores a la vez. Normalmente interacta directamente con los usuarios finales mediante una interfaz grfica de usuario. Al contratar un servicio de redes , se tiene que tener en la velocidad de conexin que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.

Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus caractersticas son:

Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempean entonces un papel pasivo en la comunicacin (dispositivo esclavo). Tras la recepcin de una solicitud, la procesan y luego envan la respuesta al cliente. Por lo general, aceptan conexiones desde un gran nmero de clientes (en ciertos casos el nmero mximo de peticiones puede estar limitado). No es frecuente que interacten directamente con los usuarios finales.

3.Ejemplo de utilizacin HEADER (HTTP/1.1) Header Field Definitions This section defines the syntax and semantics of all standard HTTP/1.1 header fields. For entity-header fields, both sender and recipient refer to either the client or the server, depending on who sends and who receives the entity. Accept The Accept request-header field can be used to specify certain media types which are acceptable for the response. Accept headers can be used to indicate that the request is specifically limited to a small set of desired types, as in the case of a request for an in-line image. Accept = "Accept" ":" #( media-range [ accept-params ] ) media-range = ( "*/*" | ( type "/" "*" ) | ( type "/" subtype ) ) *( ";" parameter ) accept-params = ";" "q" "=" qvalue *( accept-extension ) accept-extension = ";" token [ "=" ( token | quoted-string ) ] The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating all subtypes of that type. The media-range MAY include media type parameters that are applicable to that range. Each media-range MAY be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative quality factor. The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params. Quality factors allow the user or user agent to indicate the relative degree of preference for that media-range, using the qvalue scale from 0 to 1 (section 3.9). The default value is q=1. Note: Use of the "q" parameter name to separate media type parameters from Accept extension parameters is due to historical practice. Although this prevents any media type parameter named "q" from being used with a media range, such an event is believed to be unlikely given the lack of any "q" parameters in the IANA media type registry and the rare usage of any media type parameters in Accept. Future media types are discouraged from registering any parameter named "q".

The example Accept: audio/*; q=0.2, audio/basic SHOULD be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in quality." If no Accept header field is present, then it is assumed that the client accepts all media types. If an Accept header field is present, and if the server cannot send a response which is acceptable according to the combined Accept field value, then the server SHOULD send a 406 (not acceptable) response. A more elaborate example is Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c Verbally, this would be interpreted as "text/html and text/x-c are the preferred media types, but if they do not exist, then send the text/x-dvi entity, and if that does not exist, send the text/plain entity." Media ranges can be overridden by more specific media ranges or specific media types. If more than one media range applies to a given type, the most specific reference has precedence. For example, Accept: text/*, text/html, text/html;level=1, */* have the following precedence: 1) text/html;level=1 2) text/html 3) text/* 4) */* The media type quality factor associated with a given type is determined by finding the media range with the highest precedence which matches that type. For example, Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5 would cause the following values to be associated: text/html;level=1 =1 text/html = 0.7 text/plain = 0.3

image/jpeg text/html;level=2 text/html;level=3

= 0.5 = 0.4 = 0.7

Note: A user agent might be provided with a default set of quality values for certain media ranges. However, unless the user agent is a closed system which cannot interact with other rendering agents, this default set ought to be configurable by the user. 4. Archivos (Scripts) relacionados con la administracin de apache

Ficheros de registro y configuracin


Si los nombres de ficheros que indica para los distintos controles, como registro de acceso o errores, por ejemplo, comienzan por "/" (o "unidad:/" para Win32), el servdor utilizar esa ruta absoluta. Si el nombre de fichero no empieza por "/", se le antepone el valor de la directiva ServerRoot. Por ejemplo "logs/foo.log" con la directiva ServerRoot puesta como "/etc/httpd" el servidor la interpretar como "/etc/httpd/logs/foo.log".

Entorno global
Las directivas de esta seccin afectan al comportamiento genera de Apache, como el nmero de peticiones concurrentes que puede atender o donde se ubican los ficheros de configuracin.

LoadModule
Esta directiva corresponde a al soporte de Dynamic Shared Object (Objetos Dinmicos Compartidos). Son mdulos que incorporan ciertas funcinalidades que se le incorporan al servidor Apache. Para que un mdulo sea funcional tienen que estar construido como un DSO e incorporar la correspondiente directiva `LoadModule' antes de que se a utilizada. Los mdulos compilados de forma esttica (comprobar con httpd -l) no es necesario incluirlos. A continuacin vemos una lista de mdulos. Su uso de ver, en algunos casos con las directivas correspondientes.
LoadModule access_module modules/mod_access.so

LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule

auth_module modules/mod_auth.so auth_anon_module modules/mod_auth_anon.so auth_dbm_module modules/mod_auth_dbm.so auth_digest_module modules/mod_auth_digest.so include_module modules/mod_include.so log_config_module modules/mod_log_config.so env_module modules/mod_env.so mime_magic_module modules/mod_mime_magic.so cern_meta_module modules/mod_cern_meta.so expires_module modules/mod_expires.so headers_module modules/mod_headers.so usertrack_module modules/mod_usertrack.so unique_id_module modules/mod_unique_id.so setenvif_module modules/mod_setenvif.so mime_module modules/mod_mime.so dav_module modules/mod_dav.so status_module modules/mod_status.so autoindex_module modules/mod_autoindex.so asis_module modules/mod_asis.so info_module modules/mod_info.so cgi_module modules/mod_cgi.so dav_fs_module modules/mod_dav_fs.so vhost_alias_module modules/mod_vhost_alias.so negotiation_module modules/mod_negotiation.so dir_module modules/mod_dir.so imap_module modules/mod_imap.so actions_module modules/mod_actions.so speling_module modules/mod_speling.so userdir_module modules/mod_userdir.so alias_module modules/mod_alias.so rewrite_module modules/mod_rewrite.so proxy_module modules/mod_proxy.so proxy_ftp_module modules/mod_proxy_ftp.so proxy_http_module modules/mod_proxy_http.so proxy_connect_module modules/mod_proxy_connect.so

Configuraciones de directorios
Cada directorio al que Apache tenga acceso se puede configurar para satisfacer los servicios y caractersticas que se permiten o no en dicho directorio y en sus subdirectorios. En las anteriores descripciones de directivas ya hemos visto algunos ejemplos:

Valor predeterminado
Primero configuramos el predeterminado con un conjunto de caractersticas muy restrictivas:
<Directory />

Options FollowSymLinks AllowOverride None </Directory>

Esta configuracin garantiza el mayor rendimiento ya que el servidor, por un lado no tiene que comprobar si un fichero es un enlace simblico y por otro no tiene que leer ficheros .htaccess. Si queremos modificar estas caractersticas, lo haremos ms adelante para directorios concretos.

ScriptAlias
ScriptAlias controla qu directorios contienen scripts del servidor. Es bsicamente como Alias, salvo que sus contenidos se tratan como aplicaciones y el servidor las ejecuta cuando se solicitan.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>

Configuracin avanzada Robot


Se puede aadir en el directorio raz del servidor web un fichero llamado robots.txt para indicar el comportamiento que tienen que tener los buscadores y los programas de descargas sobre el servidor. Con este fichero podemos indicar qu buscadores pueden acceder al servidor y sobre qu directorio actuar. Se supone que todos los programas de descarga deben respetarlo, aunque no siempre es as. Un ejemplo de fichero robots.txt podra ser:

User-agent: * Disallow: /admin/ Disallow: /imagenes/ Disallow: /includes/ Disallow: /privado/

con lo cual estaramos prohibiendo que los buscadores y programas de descarga accedieran a estos directorios. La configuracin del fichero tiene la siguiente sintaxis: <Campo> ":" <valor> donde cada lnea tiene que terminar en modo Unix, es decir terminada slo con \n y no con \n\r como terminan las lnea de los ficheros dos/win32. Los campos pueden ser:

User-agent
En primer lugar se puede especifica el navegador o program cliente. Por ejemplo:
User-agent: googlebot

Se puede poner una plantilla "*" para indicar cualquier programa cliente, es decir:
User-agent: *

Analizando las peticiones al fichero robots.txt en los log de apache podremos ver el nombre identificador de los diversos programas, por ejemplo:
ia_archiver Ask Jeeves/Teoma Yahoo! Slurp msnbot Googlebot

Disallow:
A continuacin tenemos las directivas Disallow: para especificar ficheros o directorios. Por ejemplo las siguietnes directivas impedran que se sirvieran la pgina "privada.html", el directorio "/includes/" y el directorio "/cgi-bin/":
Disallow: privada.html Disallow: /includes/ Disallow: /cgi-bin/

Si el nombre que especificamos no termina en "/" supone todo los que empiece por la palabra indicada. Por ejemplo:
Disallow: /datos

prohibira, por ejemplo, que los buscadores cargaran /datos/ y /datos.html. Si no ponemos nada tras Disallow: supone que se permite todo. Es obligatoria al menos una lnea Disallow:

Comentarios
El smbolo # permite incluir comentarios en los ficheros robots.txt de la misma forma que se hace en la shell

Ejemplos
Permitir cualquier descarga
User-agent: * Disallow:

Para desactivar todas la araas:


User-agent: * Disallow: /

Prohibimos que las araas carguen los directorios /cgi-bin/ y /imgenes/


User-agent: * Disallow: /cgi-bin/ Disallow: /imagenes/

Prohibimos que email spider lea cualquier pgina


User-agent: emailspider Disallow: /

Prohibimos que Google cargue el contenido del directorio visitas:


User-agent: Googlebot Disallow: /visitas/

También podría gustarte