Apéndice A. Utilización de los mandatos de Caching Proxy

Este tema proporciona una referencia de los mandatos del servidor proxy.

Mandato cgiparse

Propósito

Utilice el mandato cgiparse para analizar la variable de entorno QUERY_STRING para los scripts CGI. Si no se establece la variable de entorno QUERY_STRING, el mandato lee los caracteres de CONTENT_LENGTH de la entrada estándar. Toda la salida devuelta se escribe en la salida estándar.

Formato

   cgiparse -Distintivo [Modificador]

Parámetros

Los distintivos, junto con sus equivalentes de un único carácter (-k -f -v -r -i -s -p -c -q -P) y funciones, son:

-keywords | -k
Analiza QUERY_STRING en busca de palabras clave. Las palabras clave se decodifican y se escriben en la salida estándar, una por línea.
-form | -f
Analiza QUERY_STRING como una petición de formulario. Devuelve una serie que, cuando la evalúa el shell, establece las variables shell con el prefijo FORM_ seguido de un nombre de campo. Los valores de campo se corresponden con el contenido de las variables.
-value nombre-campo | -v nombre-campo
Analiza QUERY_STRING como una petición de formulario. Devuelve el valor de nombre-campo.
-read | -r
Lee los caracteres de CONTENT_LENGTH de la entrada estándar y los escribe en la salida estándar.
-init | -i
Si no se establece QUERY_STRING, lee el valor de la entrada estándar y devuelve una sentencia SET que establece QUERY_STRING en este valor. Se puede utilizar con los métodos GET y POST. Un uso típico es:
eval 'cgiparse -init'

Con ello se establece la variable de entorno QUERY_STRING, independientemente de si se ha utilizado el método GET o POST.

Cuando se utiliza el método GET, cgiparse puede llamarse en el mismo script varias veces, pero, si se utiliza el método POST, sólo debe llamarse una vez. Con el método POST, después de la lectura de la entrada estándar, el siguiente mandato cgiparse encuentra vacía la entrada estándar y espera indefinidamente.

-sep separador | -s separador
Especifica la serie utilizada para separar varios valores. Si está utilizando el distintivo -value, el separador por omisión es newline. Si está utilizando el distintivo -form, el separador por omisión es una coma (,).
-prefix prefijo | -p prefijo
Si se utiliza con -POST y -form, especifica el prefijo que se debe utilizar al crear los nombres de las variables de entorno. El valor por omisión es "FORM_".
-count | -c
Si se utiliza con -keywords, -form y -value, devuelve un recuento de los elementos relacionados con estos distintivos.
-keywords | -k
Devuelve el número de palabras clave.
-form | -f
Devuelve el número de campos exclusivos (varios valores se cuentan como uno).
-value nombre-campo | -v nombre-campo
Devuelve el número de valores de nombre-campo (si no existe un campo denominado nombre-campo, la salida es 0).
-número
Si se utiliza con -keywords, -form y -value, devuelve la aparición especificada relacionada con estos distintivos.
-keywords
Devuelve la palabra clave número n. Por ejemplo, -2 -keywords da salida a la segunda palabra clave.
-form
Devuelve todos los valores del campo número n. Por ejemplo -2 -form da salida a todos los valores del segundo campo.
-value nombre-campo
Devuelve el número n de los distintos valores del campo nombre-campo . Por ejemplo -2 -value -whatsit da salida al segundo valor del campo whatsit.
-quiet | -q
Suprime todos los mensajes de error. (Un estado de salida distinto de cero sigue indicando error.)
-POST | -P
La información de la entrada estándar (o en el caso de un nombre de archivo, el archivo stdin) se decodifica y analiza en variables shell directamente; no se utiliza QUERY_STRING. -POST es equivalente al uso de las opciones -init y -form.

Ejemplos

Los siguientes ejemplos ignoran el hecho de que, en realidad, el servidor ya ha establecido QUERY_STRING. En los siguientes ejemplos, $ es el indicador del shell Bourne.

Resultados

0
Correcto
1
Línea de mandatos no válida
2
Las variables de entorno no se han establecido correctamente
3
Se ha producido un error al obtener la información solicitada (por ejemplo, no existe ese campo o bien QUERY_STRING contiene palabras clave cuando se solicitan los valores de campos de formulario).
Nota:
Al recibir uno de estos códigos de error, es posible que también reciba mensajes de información adicional. El mensaje varía en función del mandato emitido.

Mandato cgiutils

Propósito

Utilice el mandato cgiutils en programas de cabecera que no sean resultado de análisis para producir una respuesta HTTP 1.0 completa.

Nota:
Si desea proporcionar sus propios programas de cabecera que no sean resultado de análisis (nph) para devolver específicamente sus propios valores de retorno, el nombre del programa debe empezar por nph-. Con ello se evita que la cabecera del servidor sobrescriba su propio valor de retorno por el valor de retorno estándar del servidor.

Formato

cgiutils -Distintivo [Modificador]

Si Modificador contiene espacios en blanco, inclúyalo entre comillas ("").

Parámetros

-version
Devuelve la información de versión.
-nodate
No devuelve la cabecera Date:.
-noel
No devuelve una línea en blanco después de las cabeceras. Esto es útil si desea otras cabeceras MIME después de las líneas de cabecera iniciales.
-status nnn
Devuelve respuestas HTTP completas con el código de estado nnn, en lugar de un sólo conjunto de cabeceras HTTP. No utilice este distintivo si sólo desea la cabecera Expires:.
-reason explicación
Especifica la línea razón para la respuesta HTTP. Sólo puede utilizar este distintivo con el distintivo -status nnn.
-ct [tipo/subtipo]
Especifica la cabecera MIME Content-Type. Este ejemplo especifica un tipo de contenido MIME de text/html:
   cgiutils -ct text/html

Si omite tipo/subtipo, el tipo de contenido MIME se establece en el valor por omisión text/plain. Este ejemplo establece el tipo de contenido MIME en text/plain.

   cgiutils -ct
-ce codificación
Especifica la cabecera MIME Content-Encoding. Por ejemplo:
   cgiutils -ce  x-compress
-cl código-idioma
Especifica la cabecera MIME Content-Language. Por ejemplo:
   cgiutils -cl en_UK
-length nnn
Especifica la cabecera MIME Content-Length.
-expires Espec-Tiempo
Especifica la cabecera MIME Expires:. Este distintivo especifica el tiempo de vida (fecha de caducidad de un documento) mediante cualquier combinación de días, horas, minutos y segundos. Se corresponde con el intervalo de tiempo durante el cual un documento se considera válido. Por ejemplo:
   cgiutils -expires 2 days 12 hours

El mandato cgiutils añade el tiempo que especifique a la Hora Media de Greeenwich actual para determinar la fecha de caducidad. La fecha de caducidad se incluye en la cabecera Expires: en el formato HTTP.

-expires now
Produce una cabecera Expires: que coincide con la cabecera Date:.
-uri URI
Especifica el URI (Universal Resource Identifier) del documento devuelto. El URI puede considerarse idéntico al URL.
-extra xxx: yyy
Especifica una cabecera adicional que no se puede especificar de otro modo para el mandato cgiutils.

Ejemplos

Mandato htadm

Propósito

Utilice el mandato htadm para controlar los archivos de contraseñas del servidor. El servidor utiliza archivos de contraseñas para controlar el acceso a los archivos. Puede añadir un nombre de usuario al archivo de contraseñas, suprimir un usuario de un archivo de contraseñas, verificar una contraseña de usuario y crear un archivo de contraseñas vacío. Asimismo, puede modificar la contraseña de un usuario, suprimiendo primero la contraseña del usuario y creando, a continuación, una nueva.

Nota:
Cuando utilice el mandato htadm para añadir un usuario, cambiar una contraseña o comprobar una contraseña, debe especificar la contraseña en la línea de mandatos. Como el mandato destruye la contraseña de la línea de mandatos tan pronto como es posible, es muy poco probable que pueda ver una contraseña del usuario examinando el listado de procesos de la máquina (con el mandato ps, por ejemplo).

Formato

htadm -Distintivo  [Modificador]

Parámetros

-adduser archivo-contraseñas nombre-usuario [contraseña [real-name]]
Añade un usuario y una contraseña al archivo de contraseñas. Si especifica el mandato sólo con archivo-contraseñas, se le solicitarán los demás parámetros.
archivo-contraseñas
Vía de acceso y nombre del archivo de contraseñas al que desea añadir el usuario.
nombre-usuario
Nombre del usuario que desea añadir.

Utilice únicamente caracteres alfanuméricos para el nombre de usuario; no utilice caracteres especiales.

El mandato no se ejecuta correctamente si ya existe un usuario con el mismo nombre en el archivo de contraseñas.

contraseña
Contraseña que desea definir para el nombre de usuario.

Las contraseñas pueden tener una longitud de hasta 32 caracteres. Utilice únicamente caracteres alfanuméricos para la contraseña; no utilice caracteres especiales.

Notas:
  1. Algunos navegadores no pueden leer y enviar contraseñas con una longitud superior a ocho caracteres. Debido a esta limitación, si define una contraseña superior a ocho caracteres, el servidor reconoce la contraseña completa o sólo los ocho primeros caracteres de la contraseña como válidos.
  2. El nombre de usuario y contraseña de administrador son sensibles a las mayúsculas y minúsculas incluso si el sistema operativo no lo es. Asegúrese de entrar el nombre de usuario y contraseña exactos especificados mediante el mandato htadm al acceder a los formularios de Configuración y Administración.
nombre-real
Comentario o nombre que desea utilizar para identificar el nombre de usuario que está añadiendo. Todo lo que especifique se escribirá en el archivo de contraseñas.
-deluser archivo-contraseñas [nombre-usuario]
Suprime un usuario del archivo de contraseñas. Si especifica el mandato sólo con archivo-contraseñas, se le solicitará el parámetro nombre-usuario.
archivo-contraseñas
Vía de acceso y nombre del archivo de contraseñas del que desea eliminar un usuario.
nombre-usuario
Nombre del usuario que desea suprimir. El mandato no se ejecuta correctamente si el usuario que especifica no existe en el archivo de contraseñas.
-passwd archivo-contraseñas [nombre-usuario [contraseña]]
Modifica la contraseña de un nombre de usuario ya definido en el archivo de contraseñas. Si especifica el mandato sólo con archivo-contraseñas, se le solicitarán los demás parámetros.
archivo-contraseñas
Vía de acceso y nombre del archivo de contraseñas que contiene el nombre de usuario cuya contraseña desea modificar.
nombre-usuario
Nombre de usuario cuya contraseña desea modificar. El mandato no se ejecuta correctamente si el usuario que especifica no existe en el archivo de contraseñas.
contraseña
Nueva contraseña que desea definir para el nombre de usuario.

Las contraseñas pueden tener una longitud de hasta 32 caracteres. Utilice únicamente caracteres alfanuméricos para la contraseña; no utilice caracteres especiales.

Notas:
  1. Algunos navegadores no pueden leer y enviar contraseñas con una longitud superior a ocho caracteres. Debido a esta limitación, si define una contraseña superior a ocho caracteres, el servidor reconoce la contraseña completa o sólo los ocho primeros caracteres de la contraseña como válidos.
  2. El nombre de usuario y contraseña de administrador son sensibles a las mayúsculas y minúsculas incluso si el sistema operativo no lo es. Asegúrese de entrar el nombre de usuario y contraseña exactos especificados mediante el mandato htadm al acceder a los formularios de Configuración y Administración.
-check archivo-contraseñas [nombre-usuario [contraseña]]
Verifica la contraseña de un nombre de usuario ya definido en el archivo de contraseñas y permite averiguar si es correcta o no. Si especifica el mandato sólo con archivo-contraseñas, se le solicitarán los demás parámetros.
archivo-contraseñas
Vía de acceso y nombre del archivo de contraseñas que contiene el nombre de usuario cuya contraseña desea verificar.
nombre-usuario
Nombre de usuario cuya contraseña desea verificar. El mandato no se ejecuta correctamente si el usuario que especifica no existe en el archivo de contraseñas.
contraseña
Contraseña que desea verificar. Si la contraseña que especifica es la contraseña definida para el nombre de usuario, el mandato escribe Correct en la salida estándar y se completa con un código de retorno de 0. Si la contraseña que especifica no es la contraseña definida para el nombre de usuario, el mandato escribe Incorrect en la salida estándar.
-create archivo-contraseñas
Crea un archivo de contraseñas vacío.
archivo-contraseñas
Vía de acceso y nombre del archivo de contraseñas que desea crear.

Ejemplos

Mandato htcformat

Propósito

Utilice el mandato htcformat para preparar un dispositivo o archivo sin procesar para albergar la antememoria de proxy. Este mandato de formato debe utilizarse antes de que se especifique el dispositivo para utilizarlo con la antememoria de proxy.

La vía de acceso del dispositivo debe especificar el dispositivo original. Consulte la documentación del sistema de archivos para obtener información detallada sobre cómo acceder a los dispositivos originales. Podrá acceder a los ejemplos en la Configuración de la antememoria y el servidor proxy.

Nota:
Los kernels Linux 2.2 no dan soporte a la colocación en memoria caché de los dispositivos originales. En las plataformas Linux, sólo pueden utilizarse los archivos y la memoria para el almacenamiento de antememoria.

El tamaño mínimo de una antememoria de Caching Proxy es de 16392 KB, que equivale a 2049 bloques.

Formato

htcformat dispositivo [-blocksize <tamaño de bloque>] [-blocks número de
bloques]
htcformat -file vía_acceso_archivo [-blocksize tamaño de bloque] -blocks número
de bloques

Parámetros

-blocksize
Este parámetro establece el tamaño de bloques en el soporte de almacenamiento del dispositivo de antememoria. El tamaño de bloque es en bytes. El valor por omisión es 8192 y debe utilizarse en todas las situaciones.
-blocks
Número de bloques que se van a crear en el dispositivo o el archivo. Al formatear un archivo, es necesario este argumento para especificar el tamaño de archivo. Este argumento también puede utilizarse para limitar la cantidad de un determinado dispositivo o partición que se va a utilizar para el almacenamiento de antememoria. Si no se especifica ningún argumento blocks, se crearán tantos bloques como quepan en la partición.
-file
Se formatea un archivo en lugar de un dispositivo de almacenamiento.

Utilización

Adicionalmente, el sistema de colocación en memoria caché divide los archivos y dispositivos de memoria caché en contenedores para la indexación y la recogida de basura. El tamaño de los contenedores se establece en un determinado número de bloques y no se puede configurar. Para que la recogida de basura se ejecute, son necesarios dos contenedores cómo mínimo, siendo el tamaño mínimo de antememoria de 16392 KB.

El mandato htcformat rechaza una petición de formulario que genere un dispositivo de antememoria con menos de dos contenedores.

Ejemplos

El ejemplo siguiente formatea una partición de disco llamada c0t0d0s0 en Solaris.

htcformat /dev/rdsk/c0t0d0s0 

El ejemplo siguiente formatea una partición de disco llamada lv02 en AIX.

htcformat /dev/rlv02

El ejemplo siguiente formatea una partición de disco llamada d en Windows.

htcformat \\.\d:

El siguiente ejemplo formatea un archivo denominado filecache para que tenga un tamaño de 1 GB.

htcformat -file /opt/ibm/edge/cp/filecache -blocks 131072

Mandato ibmproxy

Propósito

Utilice el mandato ibmproxy para iniciar el servidor.

Puede establecer todos estos distintivos (excepto -r) mediante las directivas del archivo de configuración del servidor.

Es una práctica habitual crear un archivo denominado README que contenga las instrucciones y avisos que debe leer cualquier persona que acceda por primera vez al directorio. Por omisión, el mandato ibmproxy incorpora cualquier archivo README en la versión de hipertexto de un directorio. Las instrucciones del archivo README también pueden establecerse con la directiva de configuración DirReadme.

Formato

ibmproxy [-Distintivo [-Distintivo [-Distintivo..]]]

Parámetros

-nobg
Ejecuta el servidor como un proceso en primer plano, no como un proceso en segundo plano. El valor por omisión es la ejecución como un proceso en segundo plano.
-nosnmp
Desactiva el soporte SNMP.
-p número-puerto
Escucha en este número de puerto. El número de puerto por omisión es 80. Este distintivo sobrescribe la directiva Port especificada en el archivo de configuración. Para utilizar el valor por omisión o el valor especificado en el archivo de configuración, omita este distintivo.
-r archivo-configuración
Especifica el archivo que se va a utilizar como archivo de configuración. Debe utilizar este distintivo para iniciar el servidor con un archivo de configuración distinto del archivo de configuración por omisión. Esto le permitirá utilizar varios archivos de configuración.
-restart
Devuelve un servidor que está actualmente en ejecución. El mandato ibmproxy obtiene el número de proceso del servidor a partir de PidFile y se lo envía a la señal HangUP (HUP). A continuación, vuelve a cargar los archivos de configuración y a abrir los archivos de anotaciones cronológicas. Para evitar que se dañen los datos, no ejecute dos instancias del servidor simultáneamente mediante los mismos PidFile, archivos de anotaciones cronológicas y antememoria de proxy.

Como el daemon http debe leer el archivo de configuración que el servidor está utilizando actualmente para acceder al PidFile, debe especificar el mismo archivo de configuración durante el reinicio. Si ha utilizado el distintivo -r y un archivo de configuración específico al iniciar el servidor, debe especificar este distintivo y el mismo archivo con -restart.

-snmp
Activa el soporte SNMP.
-unload
En Linux, elimina las normas de cortafuegos asociadas.

Las opciones del manejo de señales también existen en las plataformas Linux y UNIX. En las plataformas Linux y UNIX, están disponibles las siguientes opciones.

SIGTERM
El mandato ibmproxy se detiene y sale al completarse. Puede utilizar SIGKILL o CANCEL para terminar inmediatamente.
SIGHUP
Si se ejecuta, el mandato ibmproxy se reinicia, vuelve a cargar el archivo de configuración y continúa el proceso.

Ejemplos