apache的配置和应用

news2024/11/25 8:16:52

文章目录

  • 一、httpd服务支持的虚拟主机类型包括以下三种:
  • 二、构建Web虚拟目录与用户授权限制
  • 三、日志分割
  • 四、

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。Apache虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

一、httpd服务支持的虚拟主机类型包括以下三种:

1.基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。例如,www.benet.com 和 www.accp.com 站点的 IP 地址都是 192.168.81.129。这是使用最为普遍的虚拟 Web 主机类型。

1)为虚拟主机提供域名解析

通过之前预先编辑好的DNS脚本直接安装完成

在这里插入图片描述

2)为虚拟主机准备网页文档

mkdir -p /var/www/html/benet
mkdir -p /var/www/html/accp
echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

在这里插入图片描述

3)添加虚拟主机配置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf			#源码编译安装的虚拟主机配置文件路径
#vim /etc/httpd/conf.d/vhosts.conf		#RPM或YUM安装的虚拟主机配置文件路径

<VirtualHost 192.168.80.10:80>								#设置虚拟主机配置区域
#    ServerAdmin webmaster@dummy-host.example.com			#设置管理员邮箱,这行可忽略
    DocumentRoot "/var/www/html/benet"						#设置网站根目录
    ServerName www.benet.com								#设置Web站点的完整域名(主机名+域名)
#    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/benet.com-error_log"						#设置错误日志文件的路径
    CustomLog "logs/benet.com-access_log" common			#设置访问日志文件的路径
</VirtualHost>

<VirtualHost 192.168.80.10:80>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>
#设置访问控制
<Directory "/var/www/html"> 								#设置目录访问权限
	Options None											#不启用任何的服务器特性
	AllowOverride None										#不允许重写Apache默认配置	
	Require all granted										#允许所有主机访问
</Directory>

在这里插入图片描述

地址限制策略:
Require all granted:允许所有主机访问。
Require all denied:拒绝所有主机访问。
Require local:仅允许本地主机访问。
Require [not] host <主机名或域名列表>:允许或拒绝指定主机或域名访问。
Require [not] ip <IP 地址或网段列表>:允许或拒绝指定 IP 地址网络访问。
  1. 加载独立的配置文件,并重启httpd服务
vim /usr/local/httpd/conf/httpd.conf						#源码编译安装的httpd服务主配置文件路径
--485行--取消注释

systemctl restart httpd

在这里插入图片描述

这一步完成后,我再打开一台win10的虚拟机,将ip和dns设置好之后尝试连接

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。

1)创建虚拟网卡设置ip需要和源主机在同一网段中

ifconfig ens33:0 192.168.81.150/24 

在这里插入图片描述
2)添加虚拟主机配置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.81.129:80>					
    DocumentRoot "/var/www/html/benet"			
    ServerName www.benet.com					
    ErrorLog "logs/benet.com-error_log"			
    CustomLog "logs/benet.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.81.150:80>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>

<Directory "/var/www/html"> 
	Options None			
	AllowOverride None		
	Require all granted		
</Directory>

在这里插入图片描述

测试连接状态

在这里插入图片描述

在这里插入图片描述

3.基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

添加虚拟主机配置

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.81.129:80>					
    DocumentRoot "/var/www/html/benet"			
    ServerName www.benet.com					
    ErrorLog "logs/benet.com-error_log"			
    CustomLog "logs/benet.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.81.129:8080>					
    DocumentRoot "/var/www/html/accp"			
    ServerName www.accp.com					
    ErrorLog "logs/accp.com-error_log"			
    CustomLog "logs/accp.com-access_log" common
</VirtualHost>

<Directory "/var/www/html"> 
	Options None			
	AllowOverride None		
	Require all granted		
</Directory>

在这里插入图片描述

2)修改httpd的配置文件

vim /usr/local/httpd/conf/httpd.conf	
--53行--插入
Listen 192.198.81.129:8080
Listen 192.198.81.129:8080

systemctl restart httpd 

在这里插入图片描述

测试连通性

在这里插入图片描述

在这里插入图片描述

二、构建Web虚拟目录与用户授权限制

修改/usr/local/httpd/conf,vim /httpd.conf,在底行添加配置

Alias /file /var/www/html/file

<Directory "/var/www/html">
        AllowOverride None
        Options None
        Require valid-user
        AuthName "hello somebody"
        AuthType Basic
        AuthUserFile /usr/local/httpd/userlist
</Directory>

在这里插入图片描述

在这里插入图片描述

添加用户名和密码

cd /usr/local/httpd/
htpasswd -c /usr/local/httpd/userlist hanxu
htpasswd ./userlist xiaobai

在这里插入图片描述

将http的配置文件中的端口号改一下

在这里插入图片描述

在/var/www/html中添加file文件并写一个hello.html文件。重启httpd服务

在这里插入图片描述

查看连接

如果我输入错误的用户名和密码则会显示错误

在这里插入图片描述

如果输入正确的用户名和密码则登录成功

在这里插入图片描述

在这里插入图片描述

三、日志分割

使用Apache 自带 rotatelogs 分割工具,将 Apache 的日志进行按每天的日期自动分割。

vim /usr/local/httpd/conf/httpd.conf
--275行--修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"		#分割错误日志
--305行--修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined	#分割访问日志

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/benet.com-access_%F.log 86400" combined

#开头的 | 为管道符号。
#-l选项表示使用本地时间为时间基准。
#86400表示一天,即每天生成一个新的日志文件。

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

浏览器访问
http://192.168.81.129
ls /var/log/httpd

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看一下

在这里插入图片描述

在这里插入图片描述

四、

编译安装

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate

在这里插入图片描述

make -j4 && make install

在这里插入图片描述

去掉105行的注释

在这里插入图片描述

vim  /usr/local/httpd/conf/httpd.conf

<IfModule mod_deflate.c>
AddOutputFilterByType  DEFLATE  text/html text/plain text/css text/xml text/javascript text/jpg text/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>

在这里插入图片描述

apachectl -t -D DUMP_MODULES

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试一下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/586633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flume实现Kafka数据持久化存储到HDFS

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

eclipse连接mysql全网最详细教程

第一步&#xff1a;我们先做连接前的环境准备工作 1、首先在MySQL官网下载驱动&#xff1a;&#xff08;下载地址博主给大家整理好了直用&#xff09; https://dev.mysql.com/downloads/file/?id498587 下下来是这个样子 2、在eclipse中新建一个工程 3、添加驱动到eclipse里…

小主机折腾记12 HP 285G3 PRO MT

五一期间&#xff0c;无事&#xff0c;咸鱼购入HP 285G3 PRO MT折腾 HP 285 PRO G3 MT准系统 150包邮 R5 2600 250包邮 金百达3200内存 229京东包邮 直接说准系统情况&#xff1a; 1.主机有三个sata接口&#xff0c;两个硬盘接口&#xff0c;一个光驱接口&#xff08;应该是可以…

BM1684X开发环境搭建--SOC mode

环境配置-SOC模式---------------------------------------- 1&#xff1a;对于SoC模式&#xff0c;模型转换也需要在docker开发容器中完成&#xff1b;C/C程序建议在x86主机上使用交叉编译工具链编译生成可执行文件后&#xff0c;再拷贝到SoC目标平台运行&#xff1b; 2&…

macOS运行软件提示:“嘉立创EDA.app” 已损坏,无法打开。你应该将它移到废纸篓。

一、问题描述 macOS运行软件提示&#xff1a;“嘉立创EDA.app” 已损坏&#xff0c;无法打开。你应该将它移到废纸篓。 二、问题分析 macOS安全性问题导致的。 三、解决方案 1、在系统设置、隐私与安全性、安全性、允许从以下位置下载的应用程序中&#xff0c;选择“任何来…

OpenLDAP 搭建及简单使用

文章目录 1、前言LDAPOpenLDAP 2、安装&#xff08;通过 Docker 部署&#xff09;环境说明镜像说明部署客户端&验证连接示例 总结 1、前言 LDAP 轻型目录访问协议&#xff08;英文&#xff1a;Lightweight Directory Access Protocol&#xff0c;缩写&#xff1a;LDAP&am…

java.awt.datatransfer.Clipboard剪切板复制粘贴String

java.awt.datatransfer.Clipboard剪切板复制粘贴String java.awt.Toolkit 是一个可用来获取操作剪切板的工具 Toolkit toolkit Toolkit.getDefaultToolkit(); 获得 tookit Clipboard systemClipboard toolkit.getSystemClipboard(); 获得操作系统级的剪切板 Toolkit toolk…

算法基础学习笔记——⑬高斯消元\组合计数\容斥原理

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨高斯消元 ✨组合计数 &#x1f353;通过预处理逆元的方式求组合数: &#x1f353;Lucas定理: &#x1f353;分解质因数法求组合数&#xff1a; 前言&#xff1a;算法学习笔记记录日常分享&#xff0c;需…

【小可爱专属教程】服务器配置环境

【小可爱专属教程】服务器配置环境 安装CUDA和CUDNN安装CUDA安装CUDNN 安装Anaconda3安装Pytorch 安装CUDA和CUDNN 安装CUDA 文件已经上传至百度网盘 链接&#xff1a;https://pan.baidu.com/s/1LKzZXtSr1kXOnlfbO0cmEw?pwdgfbb 提取码&#xff1a;gfbbsudo sh cuda_11.3.…

【技术解决方案】(多级)缓存架构最佳实践

凌晨三点半了&#xff0c;太困了&#xff0c;还差一些&#xff0c;明天补上… 因为自己最近做的项目涉及到了缓存&#xff0c;所以水一篇缓存相关的文章&#xff0c;供大家作为参考&#xff0c;若发现文章有纰漏&#xff0c;希望大家多指正。 缓存涉及到的范围颇广&#xff0c…

spring boot整合Swagger2(2.9.2版本)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

计算机组成原理-中央处理器-指令流水线和多处理器

目录 一、指令流水线基本概念 1.1影响流水线的因素 1.1.1结构相关(资源冲突) 1.1.2 数据相关(数据冲突) 1.1.3 控制相关(控制冲突) 1. 2 流水线分类 二、流水线的多发技术 2.1 超标量技术 2.2 超流水技术 2.3 超长指令字 三、五段式指令流水线 四、多处理器系统基本概念…

I.MX RT1170加密启动详解(1):Encrypted Boot image组成

使用RT1170芯片构建的所有平台一般都是高端场合&#xff0c;我们需要考虑软件的安全需求。该芯片集成了一系列安全功能。这些特性中的大多数提供针对特定类型攻击的保护&#xff0c;并且可以根据所需的保护程度配置为不同的级别。这些特性可以协同工作&#xff0c;也可以独立工…

chatgpt赋能python:Python中的区间:什么是区间(Interval),如何使用区间

Python 中的区间&#xff1a;什么是 区间&#xff08;Interval&#xff09;&#xff0c;如何使用区间 在Python中&#xff0c;区间&#xff08;Interval&#xff09;是一个广泛使用的数据结构&#xff0c;用于表示一段连续的数据范围。使用区间可以更方便地处理各种数据类型&a…

本地搭建CFimagehost私人图床【公网远程访问】

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

代码随想录算法训练营第四十一天 | 力扣 343. 整数拆分, 96.不同的二叉搜索树

343. 整数拆分 题目 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 解析 1.确定dp数组&#xff08;dp table&#xff09;以及下标的…

史上最详细的使用Claude和接入Claude-api教程

是什么&#xff08;What&#xff09; Claude 是最近新开放的一款 AI 聊天机器人&#xff0c;是世界上最大的语言模型之一&#xff0c;比之前的一些模型如 GPT-3 要强大得多&#xff0c;因此 Claude 被认为是 ChatGPT 最有力的竞争对手。Claude 的研发公司是专注人工智能安全和研…

Java制作520表白代码——爱一个人需要理由吗?

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;Java经典程序设计 520表白日&#xff0c;每个人都期待着浪漫的表白&#xff0c;而作为一名热爱编程的程序员&#xff0c;我决定用程序员的方式来向你表达我的爱意。 在2023年5月20日这个特殊的日子里&#xff0c;我要用一段特别的…

BM1684X-onnx模型转化为bmodel

1&#xff1a;在tpu-mlir目录下进入docker docker run --privileged --name tpu-mlir -v $PWD:/workspace -it sophgo/tpuc_dev:v2.2 原因&#xff1a;该镜像已创建&#xff0c;要么重新创建一个新进程&#xff0c;要么杀死老进程&#xff1b; 解决办法如下&#xff1a; 2:接着…

夜深人静学32系列17——OLED

夜深人静学32系列17——OLED OLED简介接口定义OLED驱动原理驱动函数OLED.COLED.HCubeMX配置 实战部分效果展示驱动代码 OLED简介 LED&#xff0c;即有机发光二极管&#xff08;Organic Light-Emitting Diode&#xff09;&#xff0c;又称为有机激光显示&#xff08;Organic El…