Apache服务
作者:互联网
1.网站服务程序
提供web服务的程序有Apache,Nginx,llS等
llS
llS是windows系统中的默认Web服务程序,是一款图形化的web服务管理工具,但只能在windows系统中使用
Nginx
Nginx是为俄罗斯的知名门户站点开发的,因其稳定性和丰富的功能在开源后被广泛使用,而且nginx还有以下特点低系统资源,占用内存少,并发能力强。目前是使用率很高很流行的web服务程序
Apache
是世界使用排名第一的web服务器软件之一
2.安装
apahce的服务名叫httpd
yum -y install httpd
apache基本管理
#apache状态管理
systemctl start | stop | restart |reload |status httpd.service
#设置apache开机启动
systemctl enable httpd.service
#设置apache开机不启动
systemctl disable httpd.service
说明 | 路径 |
服务目录 | /etc/httpd |
配置文件 | /etc/httpd/conf/httpd.conf |
默认网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
apache配置文件说明
主配置文件位置
/etc/httpd/conf/httpd.conf
配置文件内容类型
注释行信息
全局配置
区域配置
配置文件格式
指令 值
配置详解
ServerRoot
服务所在目录的路径,不需要做修改
ServerRoot ‘/etc/httpd’
Listen
监听端口(Listen 可以重复多次)
Listen 80
配置语法
Listen [IP-address:]portnumber [protocol]
Include
导入配置文件
IncludeOptional
和include功能相同,都是导入配置文件的.区别是IncludeOptional导入的路径有问题时会被无视,不会报错
User和group
httpd服务子进程启动时的账号和组,这个不用修改
ServerAdmin
服务运行时的管理员邮箱地址
DocumentRoot
网站数据目录{站点根目录}
语法:DocumentRoot directory-path
Directory
确定访问目录位置。标签内是设置针对该目录的访问权限
Options 访问时展示形式
indexes 当前目录下没有默认页面,就显示目录结构
FollowSyrnLinks 默认设置,允许访问符号链接
None 关闭
AllowOverride .htaccess文件中允许的指令类型
All 全部指令
None 默认值,不允许
directive-type 【directive-type】 具体指令类型
Require 访问权限设置
all granted 无条件允许
all denied 无条件访问
method http-method [http-method]... 仅允许给定的HTTP方法访问
ip IP地址 指定ip地址范围的客户端可以访问
ifModule
命令:httpd -M 查看加载模块
语法
Directoryindex disabled | local-url [local-url]
Files
包括适用于匹配文件的指令
Errorlog
错误日志记录位置
LogLevel
错误日志的级别
访问日志
日志格式说明:
标识 | 含义 |
%h | 客户端ip |
%l | remote User,通常为一个减号("-") |
%u | Remote user;非为登录访问时,其为一个减号 |
%t | 服务器收到请求时的时间 |
%r | First line of request, 即表示请求报文的首行;记录了此次请求的方法:URL以及协议版本 |
%>s | 响应状态码 |
%b | 响应报文的大小;单位是字节;不包括响应报文的http首部 |
%{Referer} | 请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的 |
%{User-Agent} | 请求报文中首部“User-Agent”的值;即发送请求的应用程序 |
ifModule alias_module
文档映射
Redirect 外部重定向
Alias 本地文件系统 映射
ScriptAlias 将url映射到cgi脚本
响应内容的编码格式
虚拟主机
虚拟主机指的是在单一机器上运行多个网站
虚拟主机功能可以让一台服务器基于ip,域名或端口号实现提供多个网站服务技术,每个网站配置独立的网站数据目录
虚拟机配置语法
1.基于ip
第一步:使用nmtui命令为网卡添加多个ip
第二步:创建网站数据目录
在/var/wwwroot/目录下创建2个目录
mkdir -p /var/wwwroot/155
mkdir -p /var/wwwroot/156
在2个网站数据目录中写入主页文件
echo “192.168.79.155” > /var/wwwroot/155/index.html
echo "192.168.79.156" > /var/wwwroot/156/index.html
第三步:在配置文件中配置基于ip的虚拟机
virtualhost 是虚拟机配置语法
ServerName 服务名称
DocumentRoot 网站数据目录{站点根目录}
Directory 权限设置
AllowOverride None 默认不开启
Require all granted 访问权限 all granted无条件访问
2.基于域名
第一步:配置hosts文件
#如果在服务器访问,在服务器上配置
命令:vim /etc/hosts
#如果在windows访问,在windows的配置
c:\windows\system32\drivers\etc\hosts
服务器ip地址 服务器域名
第二步:创建网站数据目录
第三步:基于域名的主机
配置文件地址:/etc/httpd/conf.d/linux1.conf和linux2.conf
3.基于端口
配置和基于ip和基于域名配置一样 和参考前两步 唯一变的就是端口
rewrite重写
mod_rewrite提供了基于正则表达式规则动态修改传入的请求的URL的方法。可以定义任意的url映射到内部的站点文件中
rewrite还可以实现防盗链,域名跳转
使用rewrite前:artice.php?id=1
使用rewrite后:artice/1.html
使用rewrite功能首先需要开启mod_rewrite模块,yum安装的apache默认已经开启了
rewrite使用详解
rewrite规则可以在Directory指令中进行配置
rewrite学习的三个核心是RewriteEngine,RewriteCond,RewriteRule
RewriteEngine
rewrite功能的总开关,用来开启rewrite重写功能
RewriteEngine on
RewriteCond
RewriteCond定义规则条件,当请求满足RewriteCond配置的条件时,执行RewriteCond后面的RewriteRule语句
RewriteCond 和 RewriteRule是上下架对应关系.可以有1个或者好几个RewriteCond来匹配一个RewriteRule
RewriteCond常见的HTTP请求匹配方式
判断访问者的来源
RewriteCond %{HTTP_REFERER} (www.mytest.com)
判断浏览器UA标识
RewriteCond %{HTTP_USER_AGENT} ^Mozilla//5/.0.*
匹配当前访问者的文件
RewriteCond %{REQUEST_FILENAME] !-f
-d是否是一个目录,!-d判断是否不是一个目录
-f是否是一个文件,!-f判断是否不是一个文件
$l表示第一个参数
RewriteRule
RewriteRule是配合RewriteCond一起使用的,RewriteRule是RewriteCond成功匹配后的具体执行过程
RewriteRule的写法
RewriteRule Patteern Substitution [flags]
patteern是一个正则匹配
Substitution匹配替换内容
[flags] 参数限制
NC参数是忽略大小写的意思
R参数强制重定向的意思
L结尾规则的意思,就是已经匹配到了,就立即停止,不在匹配下面的的Rule
F强制禁止访问
配置防盗链
rewrite实现防盗链
在Directory配置项中配置内容
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://192.168.79.155/.*$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ - [F]
说明:
第一条:开启rewrite重写
第二条:开启授信任的站点,能够访问站点的图片资源
第三条:访问站点的gif|jpg|swf等类型的资源时,强制禁止访问 返回403
SetEnvlfNoCase
通过判断浏览器头信息来阻止盗链请求
SetEnvlfNoCase Referer "^$" local_ref #直接输入网址允许访问
SetEnvlfNoCase Referer "192.168.79.155/.*$" local_ref #允许访问的网址白名单
<filesmatch "\.(mp3|mp4|zip|rar|jpg|gif)">
Require all denied
Require env local_ref
</filesmath>
说明:
SetEnvlfNoCase 当满足某个条件时,为变量赋值,即根据客户端请求属性设置环境变量
Referer:指明了请求当前资源原始资源的URL
Apache日志切割
日志分割的两种方式
rotatelogs(apache自带的日志切割工具)
配置文件修改:
效果:
说明:86400为轮转时间,单位为秒,代表一天
cronolog(一款第三方的日志轮循工具,可以用它来把Apache,Torncat等web服务器上输出的日志切分成按日或月保存的文件)
安装
yum -y install cronolog
使用cronolog每天记录一个日志文件
ErrorLog "|/usr/local/sbin/cronolog logs/error-%Y%m%d.log"
CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d.log" combined
按小时轮询生成日志
CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d%H.log" combined
标签:httpd,服务,rewrite,RewriteRule,访问,Apache,日志,RewriteCond 来源: https://blog.csdn.net/weixin_52729189/article/details/121665079