Contactos

¿Por qué desaparecieron repentinamente las configuraciones de los archivos de configuración de Apache? Archivo de configuración de Apache. Configuraciones de host virtual

Conceptos: configuración, directivas. Archivos de configuración, directivas. Directivas de configuración básica. Procesos del servidor. Controlar el acceso a directorios y archivos.

La configuración (latín configuratio - acuerdo mutuo) es una técnica lógica y metodológica especial, una técnica mental para sintetizar conocimientos de diferentes temas, diferentes ideas sobre un mismo objeto.

Directivas, g. (del latín directio - dirección). Orientación general dada por una autoridad superior a un subordinado (servidor de estación de trabajo, etc.) .

El archivo de configuración es un archivo con un formato bastante simple. Cada línea representa una palabra clave y uno o más argumentos. Para simplificar, la mayoría de las líneas contienen sólo un argumento. Todo lo que sigue al símbolo # es un comentario y se ignora.

Apache se configura cambiando los archivos de servicio en el directorio /etc/httpd/conf/. El archivo de configuración principal del servidor web es httpd.conf. Las directivas de configuración se pueden colocar en varios archivos, que incluyen file_name.conf en la construcción principal de Include.

Si la ubicación de un archivo o directorio se especifica implícitamente en el archivo de configuración (la ubicación explícita comienza en la raíz del sistema de archivos, con el carácter "/"), Apache usa el directorio especificado en la directiva ServerRoot para determinar la ubicación real de el objetivo.

Descripción de módulos de Apache y directivas de configuración.

Las directivas se pueden utilizar en los siguientes niveles:

Un nivel de configuración del servidor: la directiva solo se puede utilizar en el archivo de configuración principal.

Nivel V - la directiva se puede utilizar de forma diferente para diferentes hosts virtuales.

nivel D - Para cualquier directorio, puede establecer su propia configuración utilizando una directiva de este nivel.

Nivel H de archivos .htaccess: la directiva puede usarse en archivos .htaccess en lugares donde el servidor lo permita.

En cualquier momento, el uso del parámetro de nombre de archivo en la directiva especifica una ruta absoluta (comenzando con "/") o relativa al archivo desde el directorio ServerRoot.

CORE: núcleo del servidor web (módulo central de Apache)

Nombre de archivo de AccessConfig

Establece la ubicación del archivo de configuración. El archivo de configuración predeterminado del sistema es conf/access.conf; Para cancelar la lectura de este archivo, se recomienda configurar /dev/null.

Archivo de archivo AccessFileName...

Establece los nombres de los archivos de acceso utilizados para configurar la configuración sobre la marcha de forma predeterminada: .htaccess.

Módulo módulo AddModule... [A]

Activa un módulo cargado dinámicamente suministrado como un archivo de biblioteca independiente.

Módulo AddModule módulo...

Activa un módulo cargado dinámicamente, suministrado como un archivo de biblioteca independiente o compilado dentro del módulo httpd principal.

AllowOverride parámetro parámetro...

Establece las reglas por las cuales Apache usa directivas en archivos internos .htaccess;

Ninguno: ignora;

Todo: utiliza todas las directivas;

Opciones: permite el uso de Opciones y XBitHack;

Índices: directivas de gestión de indexación de directorios;

FileInfo: directivas para gestionar tipos de archivos y sus controladores;

AuthConfig: directivas para acceder a directorios Auth*;

Límite: permitir/denegar/ordenar directivas.

Reino de nombre de autenticación

Tipo de autenticación

Se utiliza para especificar un método para solicitar y transmitir un nombre de usuario y contraseña para acceder a directorios de sitios web. La mayoría de las veces usan Basic, con menos frecuencia, Digest y otros.

Dirección BindAddress [A]

Especifica la dirección en la que Apache aceptará conexiones. Puede utilizar el nombre de host, la dirección IP o *.

Borrar lista de módulos[A]

La directiva borra la lista de módulos cargados. Después de esta directiva, debe utilizar las directivas AddModule para trabajar con los módulos necesarios.

ContentDigest activado|desactivado

Habilita o deshabilita el reenvío de hash de datos MD5. Se calcula para todas las páginas transmitidas y no se almacena en caché.

Nombre de directorio CoreDumpDirectory [A]

Indica a Apache el directorio en el que se guardarán los archivos de volcado de memoria (núcleo) creados en caso de errores de emergencia.

Tipo MIME DefaultType

Establece el tipo MIME enviado a los clientes si Apache no puede determinar el tipo mediante el archivo mime.types o las directivas AddType. El valor predeterminado está configurado en texto/sin formato.

...

Combina un grupo de directivas que especifican el comportamiento de Apache al acceder a documentos ubicados en un directorio determinado. Está permitido utilizar máscaras de nombres: símbolos *, ? según las reglas del caparazón. Si se utiliza una máscara, se coloca una tilde ~ delante del nombre.

...

Define un grupo de directorios especificados por una expresión regular y establece las reglas para que Apache trabaje con directorios y archivos en este grupo.

Nombre de directorio DocumentRoot

Indica al servidor la ubicación de la raíz del árbol de directorios debajo del cual se encuentra la estructura de datos del servidor web.

ErrorDocument nombre de archivo|cadena|URL

En caso de error, redirige a las páginas especificadas. También puedes poner un comentario a la situación que ha surgido, el cual debe comenzar con comillas simples. Ejemplo:

Documento de error 500 http://foo.example.com/cgi-bin/tester

Documento de error 404 /cgi-bin/bad_urls.pl

Documento de error 401 /subscription_info.html

ErrorDocument 403 "Lo siento, no puedo permitirle el acceso hoy"

Nombre de archivo de registro de errores

Nombre del archivo de registro de errores. Si la línea de parámetro comienza con (/), entonces la ruta al archivo debe especificarse desde ServerRoot; si comienza con (|), los mensajes de error se pasan al comando especificado en la entrada estándar. En particular, de esta manera, por ejemplo, puede guardar los registros directamente en el DBMS SQL o guardarlos inmediatamente comprimidos transfiriéndolos, por ejemplo, a gzip. Las versiones 1.3 y posteriores de Apache envían mensajes a syslog de forma predeterminada si el sistema admite esta función; pero esto se puede desactivar usando syslog:facility.

...

Control de acceso a archivos. Secciones se procesan en el mismo orden que en el archivo de configuración, después de que se hayan leído las secciones de la directiva y archivos .htaccess, pero antes de leer las secciones del directorio . El argumento debe contener el nombre del archivo o una máscara que contenga "?" - cualquier carácter, "*" - cualquier cadena. Con el símbolo ~ adicional, se pueden utilizar registros extendidos. expresiones (consulte la sección EXPRESIONES REGULARES en grep(1)) Por ejemplo: corresponderá a archivos gráficos de uso común en Internet.

...

Igual que , pero utiliza expresiones regulares.

Solo se relaciona con iniciar Apache y bifurcar procesos en el entorno y con los derechos correspondientes al nombre de pila.

Búsquedas de nombres de host activadas|desactivadas|dobles

Controla la capacidad de determinar el nombre de host del visitante mediante DNS inverso. Funciona lentamente y se considera deshabilitado de forma predeterminada. Doble indica que el nombre del host debe estar sujeto a comprobaciones adicionales para garantizar que el nombre coincida con la dirección IP del host que envió la solicitud.

Verificación de identidad activada|desactivada

Habilite la autenticación RFC1413. Habilitar la función aumentará significativamente el tiempo de acceso al servidor.

...

Y Solo debe ejecutarse si esta opción está definida en las estructuras internas de Apache. El signo [!] que precede a un parámetro indica que el bloque de directivas se leerá solo si el parámetro no está definido.

...

Indica que directivas colocadas dentro de un bloque formado por un par de directivas Y sólo debe ejecutarse si este módulo está compilado en Apache. El signo [!] que precede al módulo indica que el bloque de directivas se leerá solo si el parámetro no está definido.

Incluir nombre de archivo [A]

La directiva le permite incluir archivos de configuración en la configuración del servidor.

KeepAlive activado|desactivado [A]

Permite a un cliente solicitar varios archivos secuencialmente sin interrumpir la conexión TCP.

KeepAliveTimeout seg [A]

Especifica el tiempo (en segundos) antes de que se cierre la conexión TCP que Apache esperará la siguiente solicitud del cliente.

...

Le permite especificar a qué método HTTP (por ejemplo GET o POST) pertenece el contenido colocado dentro. ... comandos de restricción de acceso.

Se pueden utilizar los siguientes métodos: OBTENER, PUBLICAR, PUT, ELIMINAR, CONECTAR, OPCIONES, TRAZAR, PATCH, PROPFIND, PROPPATCH, MKCOL, COPIAR, MOVER, BLOQUEAR, DESBLOQUEAR.

Puerto de escucha [A]

Obliga a Apache a escuchar las direcciones y puertos especificados. Por ejemplo, para forzar al servidor a escuchar en los puertos 80 y 8000, use:

Para hacer que Apache se ejecute en diferentes interfaces con números de puerto específicos, use:

Escuchar 192.170.2.1:80

Escuchar 192.170.2.5:8000

EscucharLongitud del backlog [A]

La longitud máxima de la cola de procesamiento de conexiones.

...

Detalles en el manual de apache :)

...

Detalles en el manual de apache

Nombre de archivo de bloqueo [A]

La directiva establece la ruta al archivo de bloqueo.

LogLevel emerg|alerta|crit|error|advertir|aviso|info|depurar

Establece el nivel de contenido de información del protocolo (archivo de registro de la operación del servidor). Se recomienda usar al menos el nivel crítico.

Número máximo de clientes [A]

La directiva establece un límite en el número de solicitudes simultáneas al servidor. De hecho, este número no puede exceder el número de procesos secundarios del servidor, que por defecto no puede ser más de 256. Para corregir la situación, edite HARD_SERVER_LIMIT en httpd.h y compílelo.

Recuento de solicitudes MaxKeepAlive [A]

Permite al cliente solicitar secuencialmente la cantidad especificada de archivos sin interrumpir la conexión TCP si KeepAlive está habilitado. Si el parámetro se establece en 0, Apache solo cerrará la conexión según el parámetro KeepAliveTimeout.

Recuento máximo de solicitudes por niño [A]

La directiva establece un límite en la cantidad de solicitudes que un proceso secundario individual puede manejar. Si MaxRequestsPerChild se establece en 0, el número de solicitudes es ilimitado.

Número de MaxSpareServers [A]

La directiva establece el número máximo deseado de procesos de servidor inactivos. La directiva es inútil si se utiliza la versión de Apache para Microsoft Windows.

Recuento de MinSpareServers [A]

La directiva establece el número mínimo deseado de procesos de servidor inactivos. La directiva es inútil si se utiliza la versión de Apache para Microsoft Windows.

NombrePuerto de host virtual [A]

Indica que las solicitudes a este nombre de puerto deben estar separadas por el nombre del host al que se accede (el encabezado HTTP "Host:"). Le permite definir múltiples hosts virtuales para una dirección IP.

Opciones parámetro parámetro...

Define la configuración de acciones de Apache para el contenido especificado. Todas las configuraciones posibles se describen en detalle en el manual de Apache. De uso frecuente: Índices: activa la visualización del contenido del directorio si el archivo de índice no se encuentra en él (directiva DirectoryIndex); ExecCGI: permite colocar archivos ejecutables (cgi, scripts perl) en este directorio; Incluye: habilita la capacidad de colocar archivos en el directorio SSI. Cada configuración es compatible con el módulo correspondiente que la utiliza y es posible que no funcione si el módulo requerido no está cargado. Cada directiva de Opciones se considera adicional a las Opciones ya conocidas definidas para los directorios principales. Cada configuración puede tener el prefijo + o - para habilitarla o deshabilitarla en un contexto determinado.

Nombre de archivo PidFile [A]

La directiva establece el nombre del archivo en el que el servidor escribe el identificador del proceso.

Especifica el puerto de Apache: un número de 0 a 65535 (tenga en cuenta que algunos puertos pueden ser utilizados por otros protocolos, consulte /etc/servises). El puerto estándar para el protocolo http es el 80.

requiere ID de usuario|ID de grupo|usuario válido|propietario del archivo|propietario del grupo [A]

Determina qué usuarios tienen acceso al directorio.

Requerir ID de usuario: solo estos usuarios tienen acceso

Requerir grupo nombre-grupo [nombre-grupo] - todos los usuarios de estos grupos

Requerir usuario válido: todos los usuarios válidos.

Nombre de archivo ResourceConfig [A]

El servidor lee más directivas de este archivo después de leer httpd.conf. El nombre del archivo se establece en relación con ServerRoot. Se puede desactivar: ResourceConfig /dev/null

RLimitCPU máx|seg[ máx|seg] [A]

RLimitMEM máx|bytes[ máx|bytes] [A]

RLimitNPROC máx|recuento[ máx|recuento] [A]

Satisfacer cualquiera|todos [A]

Define la política de acceso si Permitir y Requerir se utilizan simultáneamente. Se utiliza cuando el acceso al área está limitado por nombre/contraseña y dirección del cliente. En este caso, el valor predeterminado ("todos") requiere que el cliente sea verificado en la dirección e ingrese el nombre de usuario y la contraseña correctos. En el caso del parámetro "cualquiera", el cliente obtendrá acceso si ingresó el nombre y la contraseña correctos o si pasó la restricción del host. Se puede utilizar para restringir el acceso mediante una contraseña, pero permitir clientes desde una dirección específica sin contraseña.

Nombre del archivo ScoreBoardFile [A]

La directiva es necesaria para especificar el nombre de archivo utilizado por el servidor para la comunicación entre los procesos hijo y madre. Puede averiguar si este archivo es necesario ejecutando Apache y viendo si crea un archivo con el nombre indicado. En caso afirmativo, debe asegurarse de que solo lo utilice una copia de Apache.

EnviarBufferSize bytes [A]

Establece el tamaño del búfer TCP.

Correo electrónico del administrador del servidor

Establece la dirección de correo electrónico que el servidor muestra al cliente en los mensajes de error.

Nombre de host ServerAlias

Especifica un nombre de host virtual alternativo.

Nombre del servidor nombre de host

La directiva establece el nombre del servidor; utilizado en la creación de enlaces. Si no se especifica un nombre, el servidor intentará obtenerlo de su propia dirección IP.

Ruta del servidor

La directiva establece el nombre de ruta heredado para el host.

Ruta raíz del servidor [A]

Establece el directorio donde vive el servidor. Normalmente contiene los subdirectorios conf/ y logs/. Las rutas para otros archivos de configuración se crean en relación con este directorio.

Firma del servidor en|ff|correo

Configura la línea en la parte inferior del documento generado por el servidor. Deshabilitado de forma predeterminada, activado: muestra la versión del servidor y el nombre del servidor del host virtual. El correo electrónico agrega un enlace mailto: a ServerAdmin.

ServerTokens Mínimo|SO|Completo [A]

Controla el encabezado enviado al cliente por el servidor que describe el sistema operativo del servidor y los módulos compilados.

Tipo de servidor independiente|inetd [A]

Determina cómo el sistema inicia el servidor. inetd: se ejecuta desde el proceso del sistema inetd. independiente, como un proceso demoníaco.

Número de StartServers [A]

Establece el número de procesos secundarios creados al inicio. De todos modos, el número cambia dinámicamente dependiendo de la carga; normalmente no hay motivo para cambiar esta configuración.

El tiempo que esperará Apache: recibir una solicitud GET, recibir paquetes TCP en solicitudes POST y PUT, pausar entre ACK al transmitir paquetes TCP en respuestas.

Usar nombre canónico activado|desactivado

Hace que Apache genere los nombres de las páginas que crea utilizando los valores SERVER_NAME de SERVER_PORT.

nombre de usuario

Establece el ID de usuario mediante el cual el servidor responderá a las solicitudes. Para utilizar la directiva, el servidor debe ejecutarse como root.

...[A]

Directivas colocadas dentro de un bloque formado por un par de directivas. Y Determino la configuración de un host virtual determinado. Cada host virtual debe tener una dirección IP, un número de puerto o un nombre de host únicos. Tiene sentido utilizar esta directiva si, por ejemplo, el servidor tiene una interfaz de red para la red interna y otra interfaz para la red externa.

mod_env: establece y pasa variables para procesar en archivos CGI/SSI

Variable PassEnv[variable] ...

Pasa una variable de entorno (por ejemplo, HOME) a ​​los controladores.

Valor de la variable SetEnv

Escribe el valor especificado en la variable de entorno especificada.

Variable UnsetEnv[variable] ...

Restablece una variable, haciendo imposible leerla desde los controladores.

mod_setenvif: utiliza expresiones condicionales para establecer variables de entorno

BrowserMatch regex variable-env[=valor] ] ... [A]

Utiliza la expresión regular pasada como filtro para el encabezado User-Agent del navegador del cliente. En caso de éxito, inicializa la variable con el valor dado. Si solo se especifica el nombre de la variable, se inicializa con el número 1. Si se especifica una variable con un "!" - la variable se restablece.

BrowserMatchNoCase expresión regular variable-env[=valor] ] ... [A]

Actúa de manera similar a BrowserMatch, permitiendo diferencias en mayúsculas y minúsculas entre el valor de User-Agent pasado y la expresión regular utilizada como filtro.

SetEnvIf atributo expresión regular variable-env[=valor] ] ... [A]

La acción realizada por la directiva es completamente similar a BrowserMatch, pero en lugar de User-Agent se puede usar cualquier otro encabezado: Remote_Host; Dirección_remota; Usuario_remoto; Método_solicitud; Solicitud_URI; referente

SetEnvIfNoCase atributo expresión regular variable-env[=valor] ] ... [A]

La diferencia con SetEnvIf es la misma que la de BrowserMatchNoCase de BrowserMatch anterior.

mod_unique_id: genera una variable de entorno única UNIQUE_ID

La variable se genera aleatoriamente a partir de la dirección IP del servidor, el número del proceso en ejecución, marcas de tiempo y contadores internos adicionales.

La variable está pensada para su uso en documentos compuestos cuando no es posible realizar un seguimiento de la misma solicitud mediante otros métodos.

mod_mime: diseñado para determinar el tipo mime de un archivo al transferirlo al cliente

Extensión del juego de caracteres AddCharset...

Para las extensiones de archivo especificadas, le indica a Apache que pase este juego de caracteres al responder al cliente.

AddEncoding Extensión MIME-enc...

Para las extensiones de archivo especificadas, le indica a Apache que transfiera el archivo utilizando la codificación MIME deseada.

AddHandler extensión del nombre del controlador ...

Le dice a Apache que los archivos con extensiones determinadas deben pasarse a un controlador específico. El controlador puede ser interno (cgi-script y otros) o externo, descrito anteriormente en la directiva Acción.

AddLanguage Extensión de idioma MIME...

Establece una relación entre las extensiones de archivo y el código de idioma enviado en la respuesta.

AddType Extensión tipo MIME...

Actualiza la tabla de tipos MIME con una nueva asignación de extensiones de archivos y código MIME para la respuesta al cliente.

Idioma predeterminado Idioma MIME

Establece el idioma de respuesta para que se envíe siempre si esto no se puede hacer por otros medios.

ForceType tipo MIME

Fuerza una respuesta con el tipo MIME dado en el directorio al que está asignada la directiva dada.

Quitar extensión de codificación...

Elimina el código de codificación MIME en la respuesta para archivos con estas extensiones.

Extensión RemoveHandler...

Le dice a Apache que no ejecute controladores para archivos con estas extensiones.

Eliminar extensión Type...

Restablece el tipo MIME en la respuesta al cliente al tipo MIME predeterminado

Controlador SetHandler

Fuerza la llamada de este controlador para todos los archivos a los que está asignada esta directiva.

Nombre de archivo TypesConfig [A]

Especifica la ubicación de la tabla de asignación de tipos MIME. Predeterminado: conf.mime.types

mod_mime_magic: un módulo que utiliza reglas complejas para determinar el tipo MIME del archivo enviado en la respuesta

Nombre de archivo MimeMagicFile

Activa una acción de módulo utilizando el archivo especificado en un área de documentos determinada del servidor web o en todos los documentos disponibles para Apache.

mod_negotiation: proporciona negociación de tipos de datos transmitidos entre el cliente y el servidor

CachéNegotiatedDocs [A]

Permite el almacenamiento en caché de documentos con contenido consistente en servidores proxy intermedios y la computadora cliente.

LanguagePriority Idioma MIME... [A]

Determina la prioridad de los idiomas utilizados en la respuesta al cliente cuando no es posible determinar o encontrar con precisión el idioma del documento solicitado por el cliente.

mod_alias: le permite colocar documentos en los directorios del servidor web de una manera más arbitraria

Alias ​​​​ruta-URL ruta-sistema de archivos

Le dice a Apache que los documentos ubicados "debajo" de la URL dada deben buscarse "debajo" de la ubicación del sistema de archivos dada.

AliasMatch URL-regexp ruta-sistema de archivos

Define reglas más complejas para buscar datos en el sistema de archivos comparando URL con una expresión regular.

Redirigir URL-ruta URL

En respuesta a la solicitud, la ruta URL y los documentos "a continuación" devuelven el código de respuesta especificado (302 por defecto) y redirige al cliente a otra URL. El estado se puede especificar como un número o simbólicamente: permanente (301), temporal (302), ver otro (303), desaparecido (410). Para un código de respuesta 410, se debe omitir la URL de respuesta.

URL de expresión regular de URL de RedirectMatch

Similar a Redirigir, utiliza una expresión regular especificada en lugar de una coincidencia exacta para comparar la URL pasada.

URL de ruta URL de RedirectTemp

Similar a Redirigir usando el código de respuesta 302.

URL de ruta URL permanente de Redirect

Similar a Redirigir usando el código de respuesta 301.

ScriptAlias ​​​​ruta-URL ruta-sistema de archivos

Funciona de manera similar a Alias, pero configura automáticamente el controlador cgi-handler para que se ejecute para todos los archivos dentro del directorio de destino.

ScriptMatch URL-expresación regular ruta-sistema de archivos

Similar a ScriptAlias, con verificación de URL mediante una expresión regular.

mod_rewrite: controla la ubicación de los documentos en el servidor

En una breve colección de descripciones de directivas de Apache, es difícil describir las tareas que resuelve este complejo módulo. Como guía de acción, es mejor utilizar las secciones especiales del manual de Apache "Módulo mod_rewrite Motor de reescritura de URL" y "Guía de reescritura de URL". La forma más sencilla de aprender a utilizar este módulo es considerar problemas específicos y sus soluciones al utilizarlo.

Hay un único proceso principal (padre) que es responsable de crear procesos secundarios, que a su vez escuchan las conexiones y procesan las solicitudes de los clientes. Apache siempre intenta mantener en reserva algunos procesos de servidor no utilizados que están listos para procesar solicitudes entrantes. Por lo tanto, los clientes no tienen que esperar a que se creen nuevos procesos secundarios que se bifurcarán antes de que se atienda su solicitud. StartServers, MinSpareServers, Las directivas MaxSpareServers y MaxClients controlan cómo el proceso principal crea procesos secundarios para atender las solicitudes.

En general, Apache es muy autónomo, por lo que para la mayoría de los sitios web no es necesario cambiar estas directivas de sus valores predeterminados.

Para los sitios que deben atender más de 256 solicitudes simultáneas, es posible que sea necesario aumentar MaxClients, y para los sitios ubicados en servidores con memoria limitada, es posible que sea necesario reducir MaxClients para evitar forzar al servidor a intercambiar memoria al disco y viceversa), lo que provocar graves retrasos en el trabajo.

La elección de módulos es uno de los pasos más importantes para garantizar una buena seguridad del servidor web Apache. Deberíamos guiarnos por una buena regla: cuanto menos, mejor. Para habilitar la funcionalidad que necesitamos y brindar una buena protección, se deben habilitar los siguientes módulos:

httpd_core: núcleo de Apache, necesario en cada instalación de Apache.

mod_access: controla el acceso a los directorios del servidor según la dirección IP o el nombre de host del cliente.

mod_auth: necesario para autorizar a los usuarios a utilizar archivos de texto.

mod_dir: necesario para buscar archivos de índice: "index.html", "default.html", etc.

mod_log_config: proporciona un registro de las solicitudes enviadas al servidor. mod_mime: contiene directivas que facilitan la organización de varios tipos MIME en el servidor.

Todos los demás módulos de Apache deben estar deshabilitados. Podemos apagarlos con seguridad porque no los necesitaremos. Al deshabilitar módulos innecesarios, evitamos que un atacante aproveche una vulnerabilidad encontrada en uno de estos módulos.

También vale la pena señalar que dos módulos de Apache (mod_autoindex y mod_info) son los más peligrosos. El primer módulo le permite indexar automáticamente el directorio y está habilitado de forma predeterminada. Para ver cómo funciona, ingrese, por ejemplo, http://nombre_servidor/icons/ y si no hay archivos de índice en este directorio, se mostrará el contenido de todo el directorio. El segundo módulo, mod_info, nunca debería ser accesible a través de Internet porque expone toda la configuración del servidor web Apache.

La siguiente pregunta es cómo compilar módulos. Me parece que el método estático es mejor (los códigos se incrustan en archivos ejecutables) que el método dinámico (los códigos se recopilan en el momento en que se inicia el programa). Al elegir un método estático, también eliminamos la necesidad de otro módulo, mod_so.

Trabajo independiente: Trabajar con el servidor de base de datos MySQL. Creando tablas. Insertar, recuperar y actualizar datos en una base de datos.

Trabajo de laboratorio No. 12. Instalación y configuración del servidor web Apache.

Trabajo independiente: Trabajar con el servidor de base de datos MySQL.

Servidor Linux de bricolaje Kolisnichenko Denis Nikolaevich

12.2.2. Configurar Apache usando netconf

Casi todos los parámetros del servidor web Apache se pueden configurar utilizando el configurador netconf (o linuxconf). Para hacer esto, ejecute netconf y vaya a la pestaña Tareas del servidor y luego haga clic en el botón “Servidor web Apache” (ver Figura 12.2).

Arroz. 12.2. Configurar Apache usando netconf

Con netconf, puede configurar fácilmente los parámetros básicos de Apache (consulte la Figura 12.3), definir hosts virtuales, establecer parámetros de subdirectorio, definir especificaciones de directorio y módulo y establecer parámetros para el módulo mod_ssl (consulte la Figura 12.4), cuya configuración se analiza a continuación. en este capítulo.

Arroz. 12.3. Opciones básicas de Apache

Arroz. 12.4. Configurando el módulo mod_ssl

Del libro Impulsa tu sitio web autor Matsievsky Nikolay

Del libro Linux para el usuario autor Kostromin Viktor Alekseevich

Configuración de Apache 2 Para Apache 2, los pasos descritos parecen mucho más simples.# agregue Content-Type para todos los archivos con la extensión .gzAddEncoding gzip .gz# habilite la compresión para archivos HTML y XMLAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# y para íconos (más sobre esto a continuación)AddOutputFilterByType DEFLATE image/x-icon#

Del libro Servidor Linux de bricolaje. autor

Configuración de Apache Las pruebas en Konqueror han demostrado que este navegador no comprende los archivos comprimidos (CSS y JavaScript), por lo que para salvar a una décima por ciento de los visitantes de un ataque al corazón (cuando ven un sitio sin los estilos adecuados), vale la pena agregándolo a este conjunto

Del libro Linux: la guía completa autor Kolisnichenko Denis Nikolaevich

Del libro Ubuntu 10. Guía de inicio rápido autor Kolisnichenko D.N.

Configuración de Apache 2 # establezca el encabezado Content-Encoding: gzipAddEncoding gzip .gz# desde el principio habilite gzip para archivos de textoAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# y para favicon.icoAddOutputFilterByType DEFLATE image/x-icon# también para CSS y JavaScript -filesAddOutputFilterByType DESINFLAR texto/cssAddOutputFilterByType DESINFLAR

Del libro Linux a través de los ojos de un hacker. autor Flenov Mijaíl Evgenievich

13.2.6. La utilidad netconf En las secciones anteriores, intenté describir en detalle y de manera consistente cómo se puede configurar el acceso a la red editando directamente los archivos de configuración. Sin embargo, la configuración de la red local se puede realizar utilizando utilidades especiales.

Del libro del autor

12 Servidor Apache Este capítulo está dedicado al popular servidor WWW Apache. El servidor Apache es desarrollado y mantenido por el Proyecto Apache. Apache fue originalmente una variante del servidor web NCSA desarrollado en el Centro Nacional de Supercomputación de la Universidad de Illinois.

Del libro del autor

12.1. Instalación de Apache Para instalar el servidor Apache, debe instalar los paquetes apache y apache-docs. El primero de ellos contiene el propio servidor y el segundo contiene la documentación. Es recomendable instalar la última versión. En las últimas versiones, también necesita instalar el paquete apache-common, que contiene

Del libro del autor

12.5. SSL y Apache 12.5.1. Instalación de SSL SSL (Secure Sockets Layer) es un método de cifrado desarrollado por Netscape para proporcionar seguridad en Internet. Este método admite múltiples métodos de cifrado y proporciona autenticación tanto a nivel de cliente como a nivel de cliente.

Del libro del autor

12.5.2. Conectando SSL a Apache Ahora todo lo que queda es conectar mod_ssl a Apache. Tenga en cuenta que necesita una versión de mod_ssl que sea compatible con su versión de Apache. De lo contrario, el módulo mod_ssl no funcionará correctamente o se negará a hacer nada. Últimos números del título.

Del libro del autor

16.1. Instalación de Apache Dependiendo de la distribución, el paquete desde el cual se instala el servidor web Apache puede llamarse apache o httpd, y el paquete de documentación puede llamarse apache-docs o httpd-manual, respectivamente. En el primer caso, necesitará instalar el paquete apache-common que contiene

Del libro del autor

16.10. SSL y Apache 16.10.1. Instalación de SSL SSL (Secure Sockets Layer) es un método de cifrado desarrollado por Netscape para garantizar una transmisión segura de datos. Este método admite múltiples métodos de cifrado y proporciona autenticación tanto a nivel de cliente como de cliente.

Del libro del autor

16.10.2. Conexión de SSL a Apache La versión de mod_ssl que necesita instalar debe ser compatible con su versión de Apache; de ​​lo contrario, el módulo mod_ssl no funcionará correctamente o se negará a hacer nada. Los últimos dígitos en el nombre del módulo indican compatibilidad con un específico

Del libro del autor

16.13. Protegiendo el servidor Apache Después de configurar el servidor, prohibiremos cambiar y eliminar el archivo de configuración: # chattr +i /etc/httpd/conf/httpd.conf Después de esto, usted (y nadie más) podrá cambiar esto archivo incluso usando el configurador. También es recomendable establecer permisos en 511 para

Del libro del autor

26.2.1. Instalación de Apache y PHP Inicie el administrador Synaptic. En el campo Búsqueda rápida, ingrese apache. Haga clic derecho en el paquete apache2 y seleccione Marcar para instalación. El administrador de paquetes le indicará que es necesario instalar paquetes adicionales (Figura 26.1). Clic en el botón

Del libro del autor

5.1.1. netconf Este comando inicia el configurador de red (Figura 5.1). El programa netconf tiene una interfaz gráfica fácil de usar y le permite configurar los parámetros de la red sin preocuparse por los archivos de configuración. Arroz. 5.1. ventana del programa

El desarrollo profesional siempre se centra en sus propias herramientas: esto es garantía de un cumplimiento confiable y eficiente de sus obligaciones. Los hosting y servidores propios para diversos fines en una variedad de configuraciones populares amplían el alcance de las tareas resueltas, aumentan la seguridad y la confidencialidad de los desarrollos.

HTTP nativo: Apache, PHP, MySQL

El servidor web Apache ha estado firmemente a la cabeza desde el siglo pasado, ya que proporciona un funcionamiento rápido, fiable y seguro. La base es una máquina física y un servidor que ejecuta Linux o Windows, HTTP es el complemento, aunque esencialmente es un protocolo de transferencia de datos. Se puede utilizar una máquina con Windows como servidor, pero se da preferencia a la familia Linux.

Apache en Windows es una opción local que se utiliza en una sola máquina para duplicar el desarrollo de recursos alojados en servidores externos. Establecer es aceptable, pero no muy popular. Configurar Apache en CentOs ofrece más opciones y se utiliza para organizar servidores en redes locales y globales.

Se cree que los servidores Apache sirven más del 50% de todos los recursos web activos, el resto proviene de productos similares de Microsoft, Sun, etc. En realidad, el servidor físico y su sistema operativo pueden ser cualquier cosa. El servidor HTTP se instala en una plataforma preparada y se ejecuta en paralelo con otras aplicaciones en ella. Apache se considera nativo de toda la familia Linux, pero en cada caso concreto tiene sus propias características.

La libertad, la simplicidad y la confiabilidad distinguen a los sistemas Linux y sus aplicaciones. No importa lo que uses: instalar y configurar Apache en Ubuntu no es muy diferente a CentOs, Debian o FreeBSD. La saturación de un sistema operativo concreto con software adicional suele influir.

La familia Linux es pequeña en términos del número de "parientes" en la línea de uno u otro núcleo del sistema. Las diferencias son más de naturaleza social, en el sentido del apego de los desarrolladores a la formulación e implementación de las capacidades del sistema operativo.

En realidad, para resolver un problema específico de hosting, es necesario decidir la funcionalidad necesaria, el rendimiento requerido, las prioridades conceptuales y una elección específica de representante de Linux, o elegir Windows Server.

Cambiando las prioridades de desarrollo local

Es difícil evaluar el papel de la red global en el desarrollo de la programación, pero es fácil notar un cambio real en el centro de gravedad: se ha acostumbrado a que las aplicaciones locales se ejecuten como un recurso web. Es fácil escribir un programa para una computadora local: estos incluyen controladores, antivirus y pequeños proyectos con funcionalidad simple. Lenguaje de programación... VBA, aunque se puede utilizar C/C++ o C#.

Cualquier proyecto de información es un recurso web en la red local de la empresa, al que se puede acceder parcialmente desde la red global, por ejemplo, para coordinar las acciones de los empleados fuera de la oficina que están de viaje o en viaje de negocios.

MySQL, PHP, Apache: configurar una aplicación local significa una dinámica completamente diferente de la aplicación y la funcionalidad requerida. Las empresas modernas, independientemente de su tamaño, número de empleados y campo de actividad, están considerando seriamente la programación de Internet, tanto local como global.

Al mismo tiempo, lo local se puede distribuir: las oficinas de la empresa pueden estar ubicadas en cualquier lugar, pero esto no es Internet, sino la red local distribuida de la empresa.

Configuración de MySQL, PHP, Apache en formato local:

  • duplicado fácilmente en las computadoras de la red;
  • proporciona la capacidad de cambiar dinámicamente el componente activo o compararlo con una muestra para evaluar los intentos de piratería;
  • da motivos para desarrollar un sistema de seguridad que esté libre del riesgo de ser atacado por los métodos de red clásicos.

Si consideramos que MySQL y Apache en el entorno Windows son servicios, y el código PHP es texto plano procesado por una herramienta (intérprete PHP) llamada en el momento adecuado por el servidor HTTP, entonces el nivel de cambiabilidad, movilidad y portabilidad del código será mucho mayor que el de las herramientas de desarrollo local.

Preparándose para instalar Apache

En la era del “principio de los comienzos”, el sistema operativo Unix definió principios tácitos de lealtad. Desde entonces, todo lo que se hacía en sistemas tipo Unix se traducía automáticamente a otras plataformas. Configurar Apache en Windows es extremadamente simple, pero resolver problemas graves requerirá buenas calificaciones y una comprensión detallada de la configuración del servidor HTTP.

En primer lugar, debe descargar la última versión del servidor (hoy es la versión 2.4.33 del 17 de marzo de 2018) desde el sitio web oficial en formato de archivo zip. Inicialmente, debe tenerse en cuenta que las versiones del servidor son numerosas y se ofrecen en muchos recursos de terceros, por lo que es importante elegir una implementación oficial alojada en un recurso web confiable.

Anteriormente, era popular instalar un servidor mediante un instalador especial. Ahora es una práctica común simplemente implementar un archivo zip. Esto es más sencillo y permite comprender la esencia del proceso de configuración, que es muy importante y posteriormente permite optimizar el servidor para la carga y funcionalidad requeridas.

Editar un archivo de configuración

La configuración del servidor está determinada por un conjunto de archivos de configuración ubicados en la carpeta conf. El archivo de configuración principal de Apache es httpd.conf.

En la gran mayoría de los casos, es necesario realizar cambios en el archivo principal, aclarar el contenido de los archivos responsables de SSL y hosts virtuales. Por lo general, se realizan otros ajustes a lo largo del camino a medida que surgen problemas o se resuelven. Básicamente, otras configuraciones están relacionadas con la optimización del funcionamiento de Apache o la ampliación de sus capacidades.

Para iniciar correctamente el servidor, basta con editar solo una línea (en orden, 38), y la configuración de Apache estará completa.

En versiones anteriores de la configuración del servidor, era necesario realizar numerosos cambios para adaptarse a la situación real, pero ahora existe una variable SRVROOT “universal”. Sólo necesita especificar su valor correcto (la ruta a la ubicación del servidor) y todo funcionará de inmediato.

Procedimiento de colocación del servidor

Es necesario considerar cuidadosamente la ubicación del servidor. Apache en sí es interesante, pero cuando está equipado con PHP y MySQL, es doblemente interesante. Es mejor cuando todo lo relacionado con el desarrollo web está en un solo lugar. Puede aceptar las rutas predeterminadas, pero la programación moderna no es tan ideal en su implementación, por lo que tendrá que estar al tanto de forma clara y frecuente. Además, al elegir una ubicación conveniente, estarán disponibles todos los archivos de inicialización y configuración, así como los registros sobre el funcionamiento de los productos instalados.

El archivo zip oficial de Apache descargado debe implementarse en la ubicación seleccionada, colocando la herramienta y el trabajo por separado. En este ejemplo, la carpeta C:\SCiA es una herramienta (Apache24, PHP, MySQL,...), y la carpeta SCiB es el trabajo de los sitios que se están creando, manteniendo o modernizando.

Como resultado de la primera etapa del trabajo, sólo las subcarpetas bin, cgi-bin, conf, error, ... con todo su contenido terminan en la carpeta C:\SCiA\Apache24.

Editando el archivo de hosts

El segundo paso es configurar correctamente el archivo de hosts, una indicación de qué direcciones IP en una computadora determinada están asignadas a qué nombres. Si solo se desarrolla o mantiene un sitio web en una computadora, entonces no es necesario cambiar nada.

IP base: 127.0.0.1 generalmente siempre apunta al host local. El archivo de hosts en funcionamiento se encuentra en c:\Windows\System32\drivers\etc y se parece al que se muestra a continuación.

Para colocar el archivo de hosts en el lugar correcto, debe usar la línea de comando en modo administrador. Puede preparar el contenido correcto del archivo en cualquier parte del sistema de archivos de la computadora, pero puede escribirlo en la dirección c:\Windows\System32\drivers\etc sólo con una herramienta que tenga derechos de administrador. La forma más sencilla de hacerlo es a través de la línea de comando.

Instalación del servidor Apache

Nada podría ser más sencillo. Simplemente ejecute la línea de comando como administrador y vaya a la carpeta C:\SCiA\Apache24. Dado que se trata de una ruta de Windows, se utilizan barras diagonales. En un caso concreto, el camino puede ser diferente. Pero si aún puede experimentar de alguna manera con el nombre de la carpeta que albergará la Santísima Trinidad: Apache, PHP y MySQL, entonces no es práctico cambiar los nombres de las carpetas para cada uno de ellos.

En este caso, el archivo del servidor se implementa en la carpeta C:/SCiA/Apache24, por lo tanto, debe escribir el comando en la carpeta bin:

  • httpd.exe -k instalar

El servidor probará el archivo de configuración y se instalará solo. Lo más probable es que haya errores menores, pero si edita el archivo de configuración correctamente, todos los errores serán insignificantes y podrán corregirse rápidamente.

Ventana de línea de comando (1) - instalación del servicio, ventana (2) - lista de servicios en los que está declarado el servidor, ventana (3) - archivo fuente index.html, ubicado en C:/SCiB/localhost/www, ventana (4) - el resultado del funcionamiento del servidor.

En este ejemplo, se cometió un error intencional: en lugar de establecer el valor de la variable SRVROOT, se realizaron numerosas ediciones "a la antigua usanza": todo se cambió manualmente. Ésta no es la mejor solución. Antes de aplicar los conocimientos, debe familiarizarse con la versión actual del producto. Como regla general, las cosas cambian rápidamente y el conocimiento debe aplicarse “con habilidad y comprensión de la situación actual”.

Práctica de implementar un archivo zip

Los sitios web modernos no siempre se escriben utilizando sistemas de gestión de contenidos. Hay mucho trabajo manual. El problema de transferir un sitio a otro hosting proporcionó una buena solución: un archivo zip. Contrajimos el contenido en un lugar y lo ampliamos en otro.

Tener un instalador es una buena práctica, pero la dinámica de las tecnologías de la información modernas no deja tiempo para escribir hermosas instalaciones. Usar la instalación mediante la implementación de un archivo zip es moderno, práctico y conveniente. En esta opción, la configuración de Apache se limita a cambiar los archivos de configuración.

Al instalar el servidor, es importante especificar:

  • ¿Dónde está ubicado?
  • dónde se encuentra el recurso web (localhost);
  • usando ssl;
  • anfitriones virtuales.

La última posición es relevante cuando se supone que el servidor debe desarrollar o mantener varios recursos a la vez. Para un verdadero desarrollador, esta es una decisión obligatoria: incluso si garantiza el funcionamiento de un sitio, no sería superfluo tener una opción de respaldo.

conjuntos de caballero

La facilidad de implementar un archivo zip es obvia, Apache (instalación y configuración) es sólo dos o tres clics. Sin embargo, el resultado cuando los instaladores eran populares fue equivalente. El desarrollador simplemente dedicó más tiempo a desarrollar la siguiente versión de su producto. La instalación del servidor, el idioma del servidor y la base de datos es esencialmente solo una colección de archivos, servicios de inicio, un archivo de hosts y rutas predeterminadas en la variable de ruta del sistema operativo.

La aparición de "Denver" y kits de desarrollo similares para caballeros fue un paso revolucionario en el ámbito de la simplicidad y la conveniencia, pero no hay que equivocarse. Revolución y programación son cosas absolutamente incompatibles. El primero es hijo de un conflicto y su tormentosa resolución, el segundo es un asunto serio que requiere absoluta calma, puntualidad, precisión, coherencia, atención, seguridad y confiabilidad.

Configurar un servidor Apache es un procedimiento serio que debe tratarse con mucho cuidado y todo debe hacerse para que mañana puedas cambiar y aclarar algo.

En la mayoría de los casos, el desarrollo de recursos web es un proceso bastante largo en el que los requisitos de los servicios (Apache, PHP, MySQL, ...) cambian rápidamente, pero siempre hay tiempo para comprender la siguiente tarea y su solución óptima. Pero esto no es motivo para optar por conjuntos de caballeros. El tiempo pasa, pero el caballero no cambia, este es un argumento mucho más convincente que la Declaración de "Denver": es simple, rápido y accesible.

Múltiples sitios - un servidor

Configurar Apache 2.4 para un solo host es un lujo injustificado. A pesar de su diseño compacto, este servidor tiene una enorme responsabilidad sobre la mayoría de los recursos web activos en Internet. Además, no todos los recursos tienen una parte representativa y son visibles en la red.

El servidor se puede utilizar como base de datos, como punto de transferencia de información, como filtro, como analizador, como mecanismo de trabajo en un proceso de información más global. Como resultado de lo anterior, configurar hosts virtuales Apache es casi siempre un procedimiento obligatorio.

Un servidor puede admitir tantos recursos web como desee; para hacer esto, debe descomentar la línea 501 en el archivo httpd.conf:

  • # Incluir conf/extra/httpd-vhosts.conf

y describir todos los hosts necesarios en el archivo

  • extra\httpd-vhosts.conf.

Es posible que deba aclarar qué puertos e IP escucha el servidor, pero este es un tema aparte, por primera vez puede limitarse a lo que tiene.

Cabe señalar que en el ejemplo, para facilitar la descripción de recursos web virtuales reales (y hay muchos), se introdujo una variable (DOCROOT) con la ruta a la carpeta compartida de todos los recursos web accesibles a través del servidor instalado. .

La configuración de Apache SSL está disponible de forma similar. En el archivo httpd.conf, solo necesita dejar "tal cual" las líneas 524 a 531, que son responsables del funcionamiento de SSL.

La simplicidad y complejidad de Apache

Atrás quedaron los tiempos en los que configurar un servidor era una tarea realmente difícil. Hoy en día, configurar Apache es un procedimiento muy simple que no requiere calificaciones especiales por parte del desarrollador.

Tres sencillos pasos:

  • expandir archivo;
  • cambiar el archivo de configuración;
  • instalar el servidor.

Como resultado, Apache es completamente funcional. Si no tiene en cuenta las complejidades del proceso de ejecutar un servidor con carga máxima o realizar el desarrollo local en una computadora con Windows, no se requieren conocimientos adicionales.

Pueden surgir dificultades en los sistemas Linux. Una comprensión significativamente diferente del sistema de archivos, los derechos de los usuarios y grupos, así como la organización del proceso de interacción con otras aplicaciones, requieren una mayor competencia y comprensión por parte del desarrollador de cómo funcionan las computadoras Linux.

Configurar Apache en cualquier sistema Linux abre muchas más posibilidades para el desarrollador y le brinda acceso a la red local e Internet. Según la tradición establecida, una computadora con Windows es una estación de trabajo local y el servidor es interno. Una computadora Linux es un nodo de red local o un punto en el espacio de Internet.

Entorno de desarrollador profesional

Apache es un componente fundamental de Internet que se puede configurar y utilizar fácilmente y se convierte en la columna vertebral de una empresa.

Esta lógica supone la presencia de al menos un servidor en la red en las estaciones de trabajo CentOS, Ubuntu, FreeBSD y Windows. Lo óptimo es tener dos servidores Linux (principal y auxiliar), configurando Apache para una computadora local en un entorno Windows. En caso de ataque de virus o situación imprevista, el servidor auxiliar sustituirá al principal, y el principal se utilizará para reparación y restauración. Puede reemplazar la instalación local de Apache en una estación de trabajo (en Windows) desde el archivo.

Esta solución trivial puede perfeccionarse y complementarse en la práctica real. El tamaño de los flujos de información de una empresa puede determinar la configuración deseada y la cantidad de servidores necesarios. En realidad, Apache está diseñado para funcionar bajo carga, pero nada le impide distribuir las responsabilidades de un servidor entre varios. Una solución que tenga en cuenta las características de una empresa concreta siempre es más prometedora que adaptar una opción de terceros.

Alojamiento de páginas web

Se puede implementar de cuatro maneras:

    Por defecto en la carpeta /var/www/html. El acceso es http://localhost/

    Configuración principal de alojamiento. Por ejemplo, http://localhost/phpmyadmin

    En cualquier carpeta utilizando el módulo de hosts virtuales. Por ejemplo, http://misitio/

    En la carpeta public_html del usuario (módulo userdir). Por ejemplo, http://localhost/~nombre de usuario

Instalación

Para instalar Apache, ejecute en una terminal:

sudo apt-get instalar apache2

Ajustes

Para aplicar cambios en la configuración, debe reiniciar el demonio Apache: sudo service apache2 restart

En Ubuntu, el archivo de configuración final (apache2.conf) se divide en varios archivos ubicados en diferentes subdirectorios. Más detalles están escritos en los comentarios del archivo. apache2.conf.

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods habilitados | |-- *.cargar | `-- *.conf |-- conf-enabled | `-- *.conf `-- sitios habilitados `-- *.conf

La configuración del módulo se encuentra en el directorio. /etc/apache2/mods-disponibles. Para habilitar o deshabilitar módulos (configuración del módulo), use los comandos a2enmod o a2dismod apropiados. Ejemplo de conexión de módulo:

sudo a2enmod< mod-name>

Su configuración debe guardarse en archivos ubicados en el directorio /etc/apache2/conf-disponible. Para habilitar o deshabilitar su configuración, use los comandos a2enconf o a2disconf apropiados. Un ejemplo de cómo conectar un archivo con su propia configuración:

sudo a2enconf< config-name>

La configuración del host virtual debe guardarse en archivos ubicados en el directorio /etc/apache2/sitios-disponibles. Para conectar hosts virtuales, utilice los comandos a2ensite o a2dissite adecuados. Ejemplo de conexión de un host virtual:

sudo a2ensite< site-name>

Codificación predeterminada

Para especificar la codificación predeterminada, utilice la directiva AddDefaultCharset en el archivo /etc/apache2/conf-disponible/charset.conf(o descomentar la línea correspondiente):

Agregar juego de caracteres predeterminado UTF-8

Anfitriones virtuales

Los archivos de configuración del host virtual se almacenan en /etc/apache2/sitios-disponibles/*.conf. De forma predeterminada, Apache ya tiene un host virtual configurado. Su configuración está en el archivo. 000-default.conf. Puede utilizar este host virtual como ejemplo.

Ejemplo de configuración de un host virtual:

#Nombre de host Nombre del servidor host1.server1 #Carpeta raíz del host DocumentRoot /var/www/host1.server1 #Permiso para sobrescribir todas las directivas usando .htaccess AllowOverride All

Asigne al archivo de configuración el nombre de su host host1.server1.conf y guárdelo.

Después de crear el archivo de configuración, agregue su nombre de host a /etc/hosts:

127.0.0.1 host1.servidor1

Para habilitar el host virtual creado, use la utilidad a2ensite:

sudo a2ensite host1.servidor1

El host se desconecta de manera similar a la utilidad a2dissite:

sudo a2dissite host1.server1

Módulos

mod_userdir

El módulo mod_userdir le permite utilizar directorios ubicados en los directorios de inicio de los usuarios para almacenar páginas web. De forma predeterminada, Apache busca las páginas solicitadas en el directorio. ~/public_html

mkdir ~/ public_html

Para habilitar mod_userdir ejecute:

sudo a2enmod directorio de usuario

y agregue el usuario requerido al grupo www-data:

sudo adduser $USER www-datos

luego reinicie Apache:

Se podrá acceder a las páginas en http://localhost/~username, donde nombre de usuario es el nombre de usuario.

CGI

Si desea ejecutar scripts cgi en el servidor, conecte el módulo cgi con el comando

sudo a2enmod cgi

Por defecto, los scripts cgi se colocan en el directorio /usr/lib/cgi-bin, pero puede colocarlos en cualquier lugar especificando esto en la configuración de su host virtual, o globalmente para todos los hosts en el archivo /etc/apache2/conf-enabled/serve-cgi-bin.conf.

Si su servidor opera en una red externa, por razones de seguridad, se recomienda encarecidamente colocar los scripts cgi fuera del directorio raíz del host virtual.

Configurando HTTPS en Apache

El servidor web Apache es totalmente compatible con HTTPS. Para habilitar la compatibilidad con HTTPS en un Apache ya instalado, debe hacer lo siguiente.

Crear una clave y un certificado SSL

El uso de certificados autofirmados, aunque protege contra escuchas pasivas, no garantiza a los clientes que el servidor sea exactamente el que necesitan. La ventaja de los certificados autofirmados es que son gratuitos. Un certificado firmado por una autoridad certificadora cuesta dinero.

Para crear una clave y un certificado, ingrese el comando:

Solicitud de Openssl -nuevo -x509 -días 30 -keyout server.key -out server.pem

A la pregunta “Ingresar frase de contraseña PEM:” respondemos con la contraseña, confirmamos y recordamos.

Respondemos todas las preguntas posteriores de forma aleatoria, puede simplemente hacer clic en Entrar, aceptando las opciones propuestas, solo responda la pregunta “Nombre común (p. ej., SU nombre):” con el nombre del sitio para el cual estamos creando un certificado, por ejemplo www.ejemplo.com.

Después de responder todas las preguntas, deberían aparecer dos archivos nuevos en el directorio: server.pem (clave) y server.crt (certificado).

Para usar la clave generada, necesitamos saber la contraseña que ingresamos y Apache nos la pedirá al cargar, pero ¿por qué necesitamos preguntas innecesarias de los demonios? :) Por lo tanto, eliminamos la contraseña de la clave:

cp servidor.clave(,.orig) openssl rsa -in servidor.clave.orig -out servidor.clave rm servidor.clave.orig

Copiémoslos a /etc/ssl y asignemos derechos de lectura al archivo clave solo al administrador:

sudo cp server.pem / etc/ ssl/ certs/ sudo cp server.key / etc/ ssl/ private/ sudo chmod 0600 / etc/ ssl/ private/ server.key

configuración de apache

Primero necesitas activar mod_ssl:

sudo a2enmod ssl

Y luego habilite la configuración HTTPS predeterminada del sitio:

sudo a2ensite predeterminado-ssl

Ahora necesita editar el archivo con la configuración predeterminada del sitio HTTPS, indicando en él las rutas a sus certificados. El archivo en sí se llama /etc/apache2/sites-enabled/default-ssl (o /etc/apache2/sites-enabled/default-ssl.conf).

SSLEngine encendido

añadir línea

Protocolo SSL todo -SSLv2

para deshabilitar el uso del protocolo SSLv2 heredado.

# Certificado público del servidor Archivo de certificado SSL /etc/ssl/certs/server.pem # Clave privada del servidor ArchivoClaveCertificadoSSL /etc/ssl/private/server.key

Ahora simplemente reinicie Apache:

reiniciar el servicio sudo apache2

Y si todos los parámetros se especifican correctamente, sus sitios serán accesibles a través de HTTPS.

El protocolo HTTPS opera en el puerto 443, por lo que si el servidor está ubicado detrás de una puerta de enlace, entonces debe reenviarle este puerto.

Redirigir solicitudes HTTP a HTTPS

Si desea deshabilitar el uso de HTTP, lo más sensato es redirigir todas las solicitudes HTTP a las páginas a su dirección HTTPS. Hagamos esto usando mod_alias. Si no está habilitado, habilítelo:

sudo a2enmod alias sudo servicio apache2 reiniciar

Luego cambiamos el archivo /etc/apache2/sites-enabled/000-default, que es responsable del host virtual predeterminado para las solicitudes HTTP. Agregar una directiva a este archivo

Redirigir / https://ejemplo.com/

En este caso, se pueden eliminar todas las configuraciones del directorio, ya que aún no se podrá acceder a sus sitios a través de HTTP.

Eso es todo, ahora reinicia Apache nuevamente y asegúrate de que cuando accedas vía HTTP seas redirigido automáticamente a la página HTTPS.

Apache es un servidor web.

Archivos de configuración

De forma predeterminada, todos los archivos de configuración se almacenan en la carpeta "conf".

httpd.conf es archivo de configuración principal servidor apache. Los cambios realizados en este archivo requieren reiniciar el servidor Apache para que surtan efecto.

En la carpeta "extra" (dentro de la carpeta "conf") están archivos de configuración adicionales. Si es necesario, se pueden conectar dentro del archivo de configuración principal.

Sintaxis de archivos de configuración

Sólo debería haber una directiva en una línea. El carácter \ (barra invertida) se puede utilizar como último carácter de una línea para indicar que la directiva continúa en la línea siguiente. No debe haber otros espacios en blanco después del carácter \ excepto el carácter de final de línea.

La directiva y sus argumentos están separados por un espacio. Los propios argumentos también están separados por espacios. Si el argumento contiene espacios, debe estar entre comillas.

Las directivas no distinguen entre mayúsculas y minúsculas, pero los argumentos, por el contrario, sí lo hacen.

Una línea que comienza con un carácter # (almohadilla) se considera un comentario y se ignora. No se puede colocar un comentario en la misma línea que una directiva.

Los espacios en blanco insertados antes de la directiva se ignoran, por lo que se pueden usar para insertar sangrías y hacer que el código sea más fácil de leer. Las líneas vacías también se ignoran.

Módulos

Un módulo es simplemente un archivo complementario que le permite agregar funciones adicionales. Todos los complementos se encuentran en la carpeta "módulos" de forma predeterminada.

Los módulos le permiten utilizar directivas que no están incluidas en el núcleo del servidor web Apache.

.htaccess

Htaccess es un archivo de configuración adicional para el servidor web Apache, así como para servidores similares. Le permite configurar la funcionalidad para directorios individuales, sin cambiar el archivo de configuración principal, ya que el acceso a él suele estar prohibido.

El archivo .htaccess sólo afecta al directorio en el que se encuentra y a sus directorios secundarios. El archivo .htaccess se puede colocar en cualquier directorio. Las directivas de este archivo afectan a todos los archivos en el directorio actual y a todos sus subdirectorios (a menos que estas directivas sean anuladas por las directivas de los archivos .htaccess subyacentes).

Los cambios realizados en el archivo .htaccess no requieren reiniciar el servidor.

Si se cometió algún error en el archivo .htaccess, por ejemplo, una directiva o el valor de una directiva se escribió incorrectamente, el servidor devolverá un error: Error 500.

El archivo .htaccess utiliza la misma sintaxis que los archivos de configuración de Apache.

Puede ver qué directivas se pueden ubicar dentro del archivo .htaccess en el directorio de directivas en el "Contexto" de una directiva específica.



¿Te gustó el artículo? Compártelo