Configuración y aplicación de Apache
Uno, configuración y aplicación de Apache
(1) Construya un servidor web virtual
Un servidor web virtual se refiere a la ejecución de varios sitios web en el mismo servidor, cada uno de los cuales en realidad no ocupa todo el servidor de forma independiente, por lo que se denomina servidor web "virtual"
. Los servicios de alojamiento web virtual pueden hacer un uso completo de los recursos de hardware del servidor, lo que reduce en gran medida los costos operativos y de construcción del sitio web. El
uso de los servicios httpd puede crear fácilmente servidores de alojamiento virtual. Solo un servicio httpd puede admitir una gran cantidad de sitios web al mismo tiempo. tiempo. Los
tipos de hosts virtuales admitidos por el servicio httpd incluyen los siguientes tres tipos:
== 1. Basado en el nombre de dominio: == Use un nombre de dominio diferente para cada host virtual, pero la dirección IP correspondiente es la misma. Por ejemplo,
las direcciones IP de www. Benet.com y www. Gg. Com son 192. 168.71.11 Este es el tipo de host web virtual más utilizado
== 2. Según la dirección IP: == utilizada para cada host virtual Los diferentes nombres de dominio y sus correspondientes direcciones IP también son diferentes. Este método requiere múltiples interfaces de red para el servidor,
por lo que la aplicación no es muy extensa
== 3. Basado en puerto: == Este método no usa nombres de dominio ni direcciones IP para distinguir el contenido del sitio diferente, pero usa un número de puerto TCP diferente, por lo que los usuarios
deben especificar el número de puerto al mismo tiempo cuando navegan por diferentes sitios virtuales para acceder
(2) Alojamiento virtual basado en nombre de dominio
1. Proporcionar resolución de nombres de dominio para hosts virtuales.
== Método 1: == Implementar el servidor de resolución de nombres de dominio DNS para proporcionar resolución de nombres de dominio
== Método 2: == Configure temporalmente la asignación entre los nombres de dominio y las direcciones IP en el archivo / etc / hosts
echo "192.168.71.11 www.kgc.com" >> /etc/hosts
echo "192.168.71.11 www.gg.com" >> /etc/hosts
2. Preparar documentos web para hosts virtuales.
mkdir -p /var/www/html/kgc
mkdir -p /var/www/html/gg
echo "<h4>www.kgc.com</h4>" > /var/www/html/kgc/index.html
echo "<h4>www.gg.com</h4>" > /var/www/html/gg/index.html
3. Agregar configuración de host virtual
vim /etc/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf #取消注释
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #源码编译安装的虚拟主机配置文件路径
#vim /etc/httpd/conf.d/vhosts.conf #RPM或YUM安装的虚拟主机配置文件路径
<VirtualHost 192.168.71.11:80> #设置虚拟区域
# ServerAdmin [email protected] #设置管理员邮箱,这行可以不用注释
DocumentRoot "/var/www/html/gg" #设置网站根目录
ServerName www.gg.com #设置Web站点的完整域名(主机+域名)
# ServerAlias www.dummy-host.example.com
ErrorLog "logd/benet.com-error_log" #设置错误日志文件的路径
CustomLog "logs/benet.com-access_log" common #设置访问日志文件的路径
</VirtualHost>
<VirtualHost 192.168.71.11:80>
# ServerAdmin [email protected]
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
# ServerAlias www.dummy-host.example.com
ErrorLog "logd/gg.com-error_log"
CustomLog "logs/gg.com-access_log" common
</VirtualHost>
4. Configurar el control de acceso
<Directory "/var/www/html"> #设置目录访问权限
Options None #不启用任何的服务器特性
AllowOverride None #不允许重写Apache默认配置
Require all granted #允许所有主机访问
</Directory>
Explicación de instrucciones de opciones: La función principal de la directiva Opciones es controlar qué funciones del servidor se habilitarán para un directorio específico, que se puede usar en la configuración del host virtual (VirtualHost), la configuración del directorio específico (Directoty) y el archivo .htaccess del archivo de configuración del servicio Apache.
- Opciones comunes para el comando Opciones: Ninguna: significa no iniciar ninguna función del servidor
- FollowSymLinks: el servidor permite enlaces simbólicos (enlaces suaves) en este directorio
- Índices: si la URL ingresada corresponde a un directorio de archivos en el servidor, y no hay ningún archivo especificado por la directiva DirectoryIndex en el archivo de configuración de Apache en este directorio (por ejemplo: DirectoryIndex index.html index.php), todos los directorios bajo este directorio será archivo listado
- MultiViews: Si la ruta solicitada por el cliente puede corresponder a varios tipos de archivos, el servidor seleccionará automáticamente el archivo que mejor se adapte a los requisitos del cliente de acuerdo con las circunstancias específicas de la solicitud del cliente. Por ejemplo, hay dos archivos llamados hello.jpg y hello.html en la carpeta de archivos del sitio del servidor. En este momento, el usuario ingresa http: // localhost / file / hello. Si no hay un subarchivo hello en el directorio de la carpeta de archivos, luego el servidor intentará encontrar un archivo como hello. * en la carpeta de archivos, y luego devolver el hello.jpg o hello.html que mejor se adapte a los requisitos de acuerdo con las condiciones específicas de la solicitud del usuario
- Todo: indica todas las funciones excepto MultiViews, que también es la configuración predeterminada del comando Opciones
- Análisis de instrucciones AllowOverride: .htaccess (archivo de configuración implícito distribuido): proporciona un método para cambiar la configuración de cada directorio, es decir, colocar un archivo que contiene instrucciones específicas en un directorio específico, y las instrucciones actúan sobre este directorio y todos sus subdirectorios
cuando AllowOverride se establece en None, el archivo .htaccess en el directorio de configuración correspondiente no se lee, es decir, no puede tener efecto. Cuando AllowOverride se establece en All, cada vez que se solicita un archivo en el directorio correspondiente, se leerá. La configuración del archivo htaccess significa que las directivas originales de Apache serán reescritas por las directivas en el archivo .htaccess. Por
consideraciones de rendimiento y seguridad, generalmente se evita el uso del archivo .htaccess tanto como sea posible. Cualquier configuración que desee para poner en el archivo .htaccess se puede usar, se coloca en la sección del archivo de configuración principal (httpd. conf) y es eficiente. Por lo tanto, el atributo AllowOverride generalmente se configura en Ninguno
Política de restricción de direcciones: Requerir que todos se otorguen: Permitir que todos los hosts accedan
Requerir todo denegado: se deniega el acceso a todos los hosts.
Requerir local: solo el host local puede acceder.
Requerir [no] host <nombre de host o lista de nombres de dominio>: Permita o deniegue el acceso al host o nombre de dominio especificado.
Requerir [no] ip <dirección IP o lista de segmentos de red>: permite o deniega el acceso a la red de la dirección IP especificada.
5. Cargue un archivo de configuración separado
vim /usr/local/httpd/conf/httpd.conf #也可以直接修改/etc/httpd.conf前面有配置过
#源码编译安装的httpd服务主配置文件路径
------483行------取消注释
Include conf/extra/httpd-vhosts.conf #加载独立的配置文件
#vim /etc/httpd/conf/httpd.conf #RPM或YUM安装的httpd服务主配置文件路径
IncludeOptional conf.d/*.conf #最后一行已默认开启此项
httpd -t #检查配置文件格式
systemctl restart httpd
6. Resultados de la verificación
(2) Host virtual basado en la dirección IP
1. Aumente la tarjeta de red virtual
ifconfig ens33:0 192.168.71.110 netmask 255.255.255.0 基于不同的地址进行建立所以要增加一块虚拟的网卡
2. Modificar la subconfiguración de vshosts
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.71.11:80>
#ServerAdmin [email protected]
DocumentRoot "/var/www/html/gg"
ServerName www.gg.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/gg.com-error_log"
CustomLog "logs/gg.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.71.110:80> 增加个其他地址
#ServerAdmin [email protected]
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/kgc.com-error_log"
CustomLog "logs/kgc.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
3. Modifique el archivo de configuración principal para aumentar el puerto de dirección de escucha.
vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.71.110:80 增加该监听地址
systemctl restart httpd
4. Resultado de la verificación
(3) Basado en el puerto
1. Diferentes puertos con la misma dirección, modifique el puerto de escucha
vim /usr/local/httpd/conf/httpd.conf
#
<VirtualHost 192.168.71.11:80>
#ServerAdmin [email protected]
DocumentRoot "/var/www/html/gg"
ServerName www.gg.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/gg.com-error_log"
CustomLog "logs/gg.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.71.11:8080> 修改成不同端口
#ServerAdmin [email protected]
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
#ServerAlias www.dummy-host.example.com
ErrorLog "logs/kgc.com-error_log"
CustomLog "logs/kgc.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
2. Modificación del puerto de escucha del archivo de configuración principal
vim /etc/httpd.conf
Listen 192.168.71.11:80
Listen 192.168.71.11:8080 修改成同地址不同监听端口
3. Resultado de la verificación
En segundo lugar, se mantiene la conexión Apache
vim /usr/local/httpd/conf/extra/httpd-default.conf
pAlive on
//设置是否打开连接保持功能,后面接0FF表示关闭,接ON表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能
MaxKeepAliveRequests 100
//用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素
KeepAliveTimeout 5
//设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源
En tercer lugar, la construcción de directorios virtuales web y las restricciones de autorización de usuarios.
== 1. Crear archivo de datos de autenticación de usuario ==
cd /usr/local/httpd/bin //可以不用切换
htpasswd -c /usr/local/httpd/userlist.pd zhangsan //-c选项表示新建用户数据文件userlist.pd,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码
htpasswd /usr/local/httpd/userlist.pd lisi //因为创建用户数据文件所以不需要-c
cat /usr/local/httpd/user //确认用户数据文件
== 2. Agregar configuración de autorización de usuario ==
vim /usr/local/httpd/conf/httpd.conf
——末行添加——
Alias /test /var/www/html/test //设置虚拟目录的根目录,/test为虚拟目录名称
################
//如果是其他目录则需要在主配置文件增加访问控制权限
Alias /test /opt/www/html/test
<Directory "/opt/www/html">
AuthName "Hello!" //定义受保护的领域名称,会在认证对话框中显示
AuthType Basic //设置认证的类型,Basic表示基本认证
AuthUserFile /usr/local/httpd/user //设置用于保存用户账号和密码的认证文件的路径
Require valid-user //开启用户认证,只有认证文件中的合法用户才能访问
</Directory>
#################
<Directory "/var/www/html/test"> //设置虚拟目录配置区域
AuthName "Hello!" //定义受保护的领域名称,会在认证对话框中显示
AuthType Basic //设置认证的类型,Basic表示基本认证
AuthUserFile /usr/local/httpd/user //设置用于保存用户账号和密码的认证文件的路径
Require valid-user //开启用户认证,只有认证文件中的合法用户才能访问
#authgroupfile /usr/local/httpd/conf/group 设置用于保存组账号和密码的认证文件的路径
#Require user zhangsan 仅允许指定用户访问
#Require group zhangsan 仅允许指定组访问
</Directory>
== 3. Preparar documentos web ==
mkdir -p /var/www/html/test
echo "<h1>hello world</h1>" > /var/www/html/test/index.html
systemctl restart httpd
3.1 Solución de problemas
4. Verificación
Cuatro, separación de registros de Apache
1. Modifique el archivo de configuración principal
vim /usr/local/httpd/conf/httpd.conf //也可以修改 /etc/httpd.cong
-----274行附近-----修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400" #分割错误日志
-----304行附近-----修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined #分割访问日志
(O) 2. Modifique el archivo de subconfiguración extra / http-vhosts.conf
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #虚拟主机也可以进行分割
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/lic.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/lic.com- access_%F.log 86400" combined
#开头的|为管道符号
#-l选项表示使用本地时间为时间基准
#86400表示1天,即每天生成一个新的日志文件
3. Cree un directorio de registro para iniciar el servicio.
mkdir /var/log/httpd #创建分割后的日志文件保存目录
systemctl restart httpd
ls /var/log/httpd
4. Resultado de la verificación
Cinco, sistema de análisis AWStats
AWStats es un sistema de análisis de registros de código abierto desarrollado con lenguaje Perl. Se utiliza para completar análisis y estadísticas de registros automatizados
== 1. Cargue los paquetes de software necesarios para instalar Awstats en el directorio / opt ==
2. Presione e instale el paquete de software AWStats
cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats
3. Establezca un archivo de configuración para el sitio que se contará.
cd /usr/local/awstats/tools
./awstats_configure.pl
......
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf #输入httpd服务主配置文件的路径
Your web site,virtual server or profile name:
> www.kgc.com #输入要统计的站点域名
其它全部是y或者回车
4. Modifique los permisos de acceso awstats generados automáticamente y cargue el módulo CGI (Apache2.4 o una versión superior necesita cargar el módulo CGI)
vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined
...
—143行—
#LoadModule info_module modules/mod_info.so
<IfModule !mpm_prefork_module> //CGI模块开启
LoadModule cgid_module modules/mod_cgid.so #取消注释
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so #取消注释
</IfModule>
#LoadModule dav_fs_module modules/mod_dav_fs.so
——末行添加字段——
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
# Order allow,deny
# Allow from all
Require all granted
</Directory>
== 5. Modificar el archivo de configuración de estadísticas del sitio ==
vim /etc/awstats/awstats.www.kgc.com.conf
LogFile="/usr/local/httpd/logs/kgc.com-access_log" //修改访问日志文件位置需要和虚拟主机的日志文件位置一致
DirData="/var/lib/awstats" //awstats目录默认不存在,需要手动创建
mkdir /var/lib/awstats
Ver la ruta del archivo de registro de www.kgc.com
6. Realizar análisis de registros
systemctl restart httpd
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #更新数据(根据站点配置文件指定的日志文件路径)
;
7. Solución de problemas: cierre el archivo de configuración del sitio del host virtual, restaure la ruta predeterminada del archivo de registro y cambie /etc/awstats/awstats.www.kgc.com.conf
Modificar /etc/httpd.conf
Ver la ruta predeterminada del archivo de registro
/etc/awstats/awstats.www.kgc.com.conf cambio de ruta del archivo LogFile
Si visita www.kgc.com antes, aparece la página web del archivo de configuración php
cd /usr/local/httpd/htdocs/
vim index.html
mv index.php index.php.bak
== 8. Establecer tarea de programación cron ==
crontab -e #编写计划性任务,每5分钟更新一次日志文件数据
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond
== 9. Visite el sitio del sistema de análisis AwStats ==
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
echo "192.168.184.60 www.kgc.com" >> /etc/hosts //如果之前做过dns域名解析服务这里不用输入
浏览器访问
http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com
Seis, optimizar la dirección de la página web
vim /usr/local/httpd/htdocs/aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
</head>
<body></body>
HTML文件结构解释:
<html> </html>:用于HTML文件结构最外层表示的标签
<head></head>:用于HTML网页内容描述信息的头标签
<body></body>:用于显示网页内容的内容标签
<meta>:定义了HTML文档中的元数据,比如针对搜索引擎和更新频度的描述和关键词。这里的http-equiv=refresh用于实现网页自动跳转
浏览器访问
http://www.kgc.com/aws.html