其他分享
首页 > 其他分享> > Apache服务

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,通常为一个减号("-")

%uRemote user;非为登录访问时,其为一个减号
%t服务器收到请求时的时间
%rFirst 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