Apéndice A. Utilización de los mandatos de Caching Proxy
Este 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.
- Búsqueda de palabras clave
$ QUERY_STRING="is+2%2B2+really+four%3F"
$ export QUERY_STRING
$ cgiparse -keywords
is
2+2
really
four?
$
- Examen de todos los campos de formulario
$ export QUERY_STRING="name1=Value1&name2=Value2%3f+That%27s+right%21";
$ cgiparse -form
FORM_name1='Value1'; FORM_name2='Value2? That'\'s right!'
$ eval `cgiparse -form`
$ set | grep FORM
FORM_name1="Value1"
FORM_name2="Value2? That's right!"
$
- Extracción de un sólo valor de campo
$ QUERY_STRING="name1=value1&name2=Second+value%3F+That'\'s%27s
$ cgiparse -value name1
value1
$ cgiparse -value name2
Second value? That's right!
$
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
- En este ejemplo se calcula la fecha de caducidad de la cabecera
Expires:.
cgiutils -expires "1 year 3 months 2 weeks 4 days 12 hours 30 mins"
- El siguiente ejemplo especifica un código de estado y una razón y establece la
cabecera Expires: igual a la cabecera Date:.
cgiutils -status 200 -reason
"Aparece un doc virtual" -expires now
Es posible que se generen cabeceras parecidas a éstas:
HTTP/1.0 200 Virtual doc follows
MIME-Version: 1.0
Server: IBM-ICS
Date: Tue, 05 Jan 1996 03:43:46 GMT
Expires: Tue, 05 Jan 1996 03:43:46 GM
El mandato cgiutils
produce automáticamente la cabecera Server:, ya que
está disponible en el entorno CGI. El campo Date:
también se genera automáticamente a menos que se especifique el distintivo
-nodate.
Este ejemplo incluye una línea después de la salida para marcar el final
del apartado de la cabecera MIME. Si desea continuar este ejemplo con más
cabeceras, utilice el distintivo -noel
archivo-configuración(NO-Empty-Line) tal como se muestra en el siguiente ejemplo.
- Si no desea que aparezca la línea en blanco después de la línea de
cabecera, utilice el distintivo -noel:
cgiutils -noel -expires "2 days" -nodate
HTTP/1.0 200 Virtual doc follows
MIME-Version: 1.0
Server: IBM-ICS
Expires: Tue, 07 Jan 1996 03:43:46 GMT
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:
- 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.
- 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:
- 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.
- 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
- Para añadir un usuario a un archivo de contraseñas:
- Sistemas Linux y UNIX:
htadm -adduser /opt/ibm/edge/cp/server_root/protect/heroes.pwd
clark superman "Clark Kent"
- Sistemas Windows:
htadm -adduser "C:\Archivos de programa\IBM\edge\cachingproxy\cp\server_root\protect\
heroes.pwd" clark superman "Clark Kent"
Nota:
El mandato htadm debe aparecer
en una línea. Aquí se muestra en más una línea por razones de claridad. Especifique el mandato real en una línea con un espacio entre
clark y superman como mínimo.
- Para eliminar un usuario de un archivo de contraseñas:
- Sistemas Linux y UNIX:
htadm -deluser /opt/ibm/edge/cp/server_root/protect/
heroes.pwd clark superman "Clark Kent"
- Sistemas Windows:
htadm -deluser "C:\Archivos de programa\IBM\edge\cachingproxy\cp\server_root\protect\
heroes.pwd" clark superman "Clark Kent"
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
- Para iniciar el servidor en el puerto 8080 mediante el archivo de
configuración /usr/etc/ibmproxy.conf en lugar del archivo de configuración
por omisión, especifique:
ibmproxy -p 8080 -r /usr/etc/ibmproxy.conf
- En AIX, para iniciar un servidor con el archivo de configuración por
omisión mediante System Resource Controller, especifique:
startsrc -s ibmproxy
Si el archivo de configuración por omisión no existe, el mandato
ibmproxy exporta el árbol de directorios /Public. Este árbol contiene enlaces con otros árboles de directorios.