ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Apache服务

2021-12-07 19:00:11  阅读:232  来源: 互联网

标签:httpd 服务 rewrite RewriteRule 访问 Apache 日志 RewriteCond


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有