Configuración y aplicación de Apache (actualización continua)

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

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Agregar configuración de host virtual

vim /etc/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf    #取消注释

Inserte la descripción de la imagen aquí

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>

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí

6. Resultados de la verificación

Inserte la descripción de la imagen aquí

(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>

Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

4. Resultado de la verificación
Inserte la descripción de la imagen aquí

(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  修改成同地址不同监听端口

Inserte la descripción de la imagen aquí

3. Resultado de la verificación
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

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                      //确认用户数据文件

Inserte la descripción de la imagen aquí

== 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>

Inserte la descripción de la imagen aquí

== 3. Preparar documentos web ==

mkdir -p /var/www/html/test
echo "<h1>hello world</h1>" > /var/www/html/test/index.html
systemctl restart httpd

Inserte la descripción de la imagen aquí

3.1 Solución de problemas
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Verificación
Inserte la descripción de la imagen aquí

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天,即每天生成一个新的日志文件

Inserte la descripción de la imagen aquí

3. Cree un directorio de registro para iniciar el servicio.

mkdir /var/log/httpd                   #创建分割后的日志文件保存目录
systemctl restart httpd
ls /var/log/httpd

Inserte la descripción de la imagen aquí

4. Resultado de la verificación

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí

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>

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

== 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

Inserte la descripción de la imagen aquí

Ver la ruta del archivo de registro de www.kgc.com

Inserte la descripción de la imagen aquí

6. Realizar análisis de registros

systemctl restart httpd
cd /usr/local/awstats/tools/
./awstats_updateall.pl now          #更新数据(根据站点配置文件指定的日志文件路径)

Inserte la descripción de la imagen aquí

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
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Ver la ruta predeterminada del archivo de registro
Inserte la descripción de la imagen aquí

/etc/awstats/awstats.www.kgc.com.conf cambio de ruta del archivo LogFile
Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí
== 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

Inserte la descripción de la imagen aquí

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

Supongo que te gusta

Origin blog.csdn.net/weixin_53567573/article/details/115184146
Recomendado
Clasificación