linux学习lesson45

Linux apachectl命令教程:如何控制和管理Apache HTTP服务器(附实例详解和注意事项) apachectl(Apache Control)是Apache HTTP服务器的控制接口,它被设计用来帮助管理员控制Apache httpd守护进程的功能。它主要用于启动、停止和重启Apache Web服务器,以及执行其他管理任务。 阅读详情



1 配置防盗链

通过限制referer来实现防盗链的功能
配置文件增加如下内容:

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com aaa.com
<Directory /data/wwwroot/111.com>
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "http://aaa.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref //表示空referer
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|png|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

测试空referer访问结果:(空referer的意思就是在浏览器一个空白页直接访问网站文件)

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#SetEnvIfNoCase Referer "^$" local_ref //表示空referer,先把这行配置前加上#注释掉

然后重新加载配置文件

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

在浏览器访问测试:
在这里插入图片描述

通过其它网站做referer跳转访问文件:

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "http://aaa.com" local_ref
改为
SetEnvIfNoCase Referer "https://blog.youkuaiyun.com/InfiniteIdea_Go" local_ref (如果没有配置这个跳转referer,是无法访问的会出现403)

在一个博客上发布一个链接(本人使用csdn博客测试)
点击链接,可以直接访问到文件(前提开机windows的hosts域名解析)
111.com/1.png

打开空referer配置:

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "^$" local_ref

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

直接在浏览器输入:
http://111.com/1.png,可以正常访问
在这里插入图片描述

curl测试:

[root@linux01 ~]# curl -e "http:www.baidu.com" -x127.0.0.1:80 111.com/1.png -I
HTTP/1.1 403 Forbidden
Date: Sat, 17 Nov 2018 16:02:08 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1

状态码返回403,因为上面配置了referer是SetEnvIfNoCase Referer "http://111.com" local_ref和SetEnvIfNoCase Referer "https://blog.youkuaiyun.com/InfiniteIdea_Go" local_ref,-e是指定referer

更改referer测试:

[root@linux01 ~]# curl -e "https://blog.youkuaiyun.com/InfiniteIdea_Go" -x127.0.0.1:80 111.com/1.png -I
HTTP/1.1 200 OK
Date: Sat, 17 Nov 2018 16:05:07 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Last-Modified: Sat, 14 Apr 2018 09:19:00 GMT
ETag: "33892-569cb7a9de900"
Accept-Ranges: bytes
Content-Length: 211090
Content-Type: image/png

状态码返回200,成功访问




2 访问控制Directory

除了用户认证增加安全性,另外访问控制Directory也可以增加访问的安全性
核心配置文件内容 (无论怎么配置都是从上到下执行,执行deny再到allow)

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.comaaa.com
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow order定义执行顺序,先deny,再allow
Deny from all
Allow from 127.0.0.1
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

创建文件:

[root@linux01 111.com]# mkdir admin
[root@linux01 111.com]# echo "hello world" >> admin/index.php

重新加载配置:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl命令测试:

[root@linux01 ~]# curl -x127.0.0.1:80 111.com/admin/index.php -I
HTTP/1.1 200 OK
Date: Sat, 17 Nov 2018 16:15:15 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Content-Type: text/html; charset=UTF-8

状态码返回200,成功访问

更改访问ip,192.168.139.111(本机的ip)

[root@linux01 ~]# curl -x192.168.139.111:80 111.com/admin/index.php -I
HTTP/1.1 403 Forbidden
Date: Sat, 17 Nov 2018 16:16:19 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1

状态码返回403,没有访问权限,因为访问控制只允许127.0.0.1

访问控制的目录一定要写绝对路径




3 访问控制FilesMatch

指定访问的文件,而不是针对目录,相对灵活一点
修改配置文件:

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com aaa.com
<Directory /data/wwwroot/111.com/admin/>
<FilesMatch "admin.php(.*)"> //限制的文件名
Order deny,allow order定义执行顺序,先deny,再allow
Deny from all
Allow from 127.0.0.1 //允许访问的ip
</FilesMatch>
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

创建文件:

[root@linux01 111.com]# echo "hello world" >> admin.php

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl测试:

[root@linux01 ~]# curl -x192.168.139.111:80 111.com/admin.php -I
HTTP/1.1 403 Forbidden
Date: Sat, 17 Nov 2018 16:25:09 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1

状态码返回403,没有权限访问

curl 127.0.0.1测试:

[root@linux01 ~]# curl -x127.0.0.1:80 111.com/admin.php -I
HTTP/1.1 200 OK
Date: Sat, 17 Nov 2018 16:26:50 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Content-Type: text/html; charset=UTF-8

状态码返回200,成功访问


扩展
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556

vatic标注工具安装步骤(非docker安装)以及错误解决办法 vatic标注工具安装步骤(非docker安装)以及错误解决办法1、安装参考2、安装步骤2.1、环境介绍2.2、下载vatic2.3、配置Apache欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注... 阅读详情

相关推荐

E-Learning应是学习系统而非教育系统:基于xAPI的行为驱动重构

学习系统本质是围绕真实学习行为构建的技术范式,其核心在于捕捉、理解并响应学习者的认知过程,而非简单复刻传统教育流程。它依托xAPI等行为日志标准,将点击、暂停、回放、拖拽等微观交互转化为可计算的认知信号;通过行为聚类、时序分析与体验网络建模,实现从‘完成课程’到‘掌握能力’的评估跃迁;最终在企业培训、职业教育、开发者学习等场景中,支撑动态难度调节、情境化推送、技能缺口预警等工程化教学干预。本文聚焦学习系统落地中的数据模型重构、评估逻辑升级与内容架构演进,详解如何用行为数据驱动真正以学习者为中心的智能平台建设

didi9310的博客 411

Linux apachectl 命令详解: Apache HTTP 服务器(httpd)的控制工具

命令是 Apache HTTP 服务器(httpd)的控制工具,用于启动、停止、重启 Apache 以及测试其配置。它提供了一种方便的方式来管理 Apache 进程,而无需直接操作。在现代 Linux 发行版(如 Ubuntu、CentOS 7+、Debian)中,建议使用。仍然适用于快速管理 Apache,特别是在手动调试和配置测试时。如果你使用 Apache 进行 Web 服务器部署,熟练掌握。命令可以帮助你更高效地管理和维护服务器。

yangchuang111213的博客 1344

基于Docker的D435i相机与IMU联合标定实战指南

本文详细介绍了基于Docker的D435i相机与IMU联合标定实战指南,涵盖kalibr镜像构建、IMU标定全流程、双目相机标定技巧及联合标定结果验证。通过Docker容器化部署,简化了复杂依赖环境,提升标定效率与精度,适用于机器人视觉与SLAM应用。

weixin_30872337的博客 239

Apache重起的最好方法apachectl graceful

起动Apache有很多种方法-但实质都是调用httpd--fei一般只用Apachectl好用简单apachectl是控制Apache的脚本-start,stop,restart就不用说了---configtest是看配置文件的语法有没有错误-有就会指出哪行-什么错--主要是调试用.status是如果你加载了mod_status模块后调用lynx显示apache的工作状态.主要是graceful-...

dimple 1845

C#粘包和分包问题及解决方法

一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解:  下面对上面的图进行解释:  1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。  2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲...

weixin_42033401的博客 7767

华为海思2026届数字IC秋招笔试真题解析与实战技巧(2025最新版)

本文深度解析华为海思2026届数字IC秋招笔试真题,涵盖高频考点如后端设计、低功耗设计、SystemVerilog语法等核心内容。提供时序违例修复、时钟树综合等实战技巧,帮助考生高效备考。特别关注UPF低功耗设计规范等最新考点,助力考生在秋招笔试中脱颖而出。

lg888的博客 1088

超级!超级!超级好用的视频标注工具

VATIC视频标注工具(下载见文末)安装(基于Ubuntu16.04)$ sudo pip install cython==0.20$ wget http://mit.e...

gzq0723的博客 1863

基于uniapp实现自定义日历页面、年份月份选择、动态日历渲染、日期标记及备忘录、无组件依赖、多端兼容

基于UniApp框架下自定义日历组件的完整实现方案,涵盖基础日历渲染、年月选择器集成、动态数据标记等核心功能。提供完整代码段,帮助开发者快速构建高性能、高定制化的日历模块,适用于日程管理、预订系统等场景。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

lesson45:Linux基础入门指南:从内核到实践操作全解析

这是一篇关于Linux基础的内容摘要,涵盖Linux内核与发行版解析、VMware虚拟机安装配置、Ubuntu系统安装、快照功能使用、目录系统详解及基础命令实战等内容,旨在帮助读者从理论到实践全面入门Linux系统,并提供了进阶学习路径和资源推荐。

2402_82363599的博客 1668

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4265

交换机背板带宽、交换容量与包转发率到底是啥?

在网络工程中,交换机是核心设备之一,而关于它的性能指标,背板带宽、交换容量、以及包转发率往往成为人们衡量其性能的重要参数。这些术语的定义、关系、以及在实际场景中的应用,都对交换机的选型与部署有着重要意义。本文将为您全面解读这些概念,帮助您深入了解交换机的核心性能指标。

网络技术联盟站 1548

Linux:45线程同步lesson33

2-1 条件变量• 当⼀个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。• 例如⼀个线程访问队列时,发现队列为空,它只能等待,只到其它线程将⼀个节点添加到队列 中。这种情况就需要⽤到条件变量。2-2 同步概念与竞态条件• 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从⽽有效避免 饥饿问题,叫做同步• 竞态条件:因为时序问题,⽽导致程序异常,我们称之为竞态条件。在线程场景下,这种问题也 不难理解高频的申请锁和释放锁,但不作为,

WG_17的博客 372

在 Zynq 7010 上运行 VxWorks 7.0 的详细流程【持续更新】

本文介绍了在Zynq 7010开发板上运行VxWorks 7.0的完整流程。主要包括:1)使用Vivado创建硬件设计,配置Zynq模块并生成比特流文件;2)通过Workbench 4创建VxWorks工程,配置启动参数并生成镜像;3)下载运行步骤。此外还讲解了使用Workbench 4开发VSB和VIP工程的方法,包括工程创建、配置和调试流程。文中提供了关键操作截图和注意事项,为开发者提供了完整的Zynq 7010平台VxWorks开发解决方案。

weixin_45397344的博客 1223

linux学习lesson32

目录 1 监控io性能 2 free命令 3 ps命令 4 查看网络状态 5 linux下抓包 1 监控io性能 iostat -x  磁盘使用 [root@worker1 ~]# iostat -x Linux 3.10.0-327.el7.x86_64 (worker1) 10/15/2018 _x86_64_ (2 CPU) avg-cpu: %us...

InfiniteIdea_Go的博客 397

Swin Transformer 类可视化(grad CAM)

完整代码 from pytorch_grad_cam import GradCAM, ScoreCAM, GradCAMPlusPlus, AblationCAM, XGradCAM, EigenCAM from pytorch_grad_cam.utils.image import show_cam_on_image from torchvision.models import resnet50 import glob from demo import parse_option from models i

G果的博客 6639

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

linux学习lesson21

目录 1 安装软件包的三种方法 2 rpm包介绍 3 rpm工具用法 4 yum工具用法 5 yum搭建本地仓库 1 安装软件包的三种方法 rpm工具 RPM包是预先在Linux机器上编译并打包的文件,安装非常快捷。但它也有一些缺点,比如安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载。如果依赖的包是系统所必需的,就不能卸载这个包,...

InfiniteIdea_Go的博客 442

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

linux 命令行 webcamera,菜鸟学Linux移植lesson3之WebCamera

网络摄像机1、CMOS摄像头驱动的移植准备好CMOS摄像头驱动源码,包含2个文件:ov9650.c和ov9650.h(光盘资料/源码包/驱动源码/camera 驱动),将这2个文件复制到drivers/media/video目录下。26修改drivers/media/目录下Kconfig文件,在101 行加入:config S 3C2440_CAMERAtristate "OV9650 on th...

weixin_29475917的博客 652

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux内核移植lpa是什么,菜鸟学Linux移植lesson3之WebCamera_CMOS测试

网络摄像机1、CMOS摄像头驱动的移植准备好CMOS摄像头驱动源码,包含2个文件:ov9650.c和ov9650.h(光盘资料/源码包/驱动源码/camera 驱动),将这2个文件复制到drivers/media/video目录下。26???? 修改drivers/media/目录下Kconfig文件,在101 行加入:config S 3C2440_CAMERAtristate "OV9650 on ...

weixin_34675606的博客 375

old mysql_L001-oldboy-mysql-dba-lesson01

L001-oldboy-mysql-dba-lesson01《sql应用重构》经典的书,思想,封顶境界![root@web01 ~]# cd /usr/local/src/[root@web01 src]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz[root@web01 src]# cp -R mysql-5.5.32-linux2.6-x86_64/u...

weixin_30872577的博客 151

linux中sln作用,linuxHighPerformanceServer.sln

Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 15VisualStudioVersion = 15.0.28307.960MinimumVisualStudioVersion = 10.0.40219.1Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94...

weixin_30068505的博客 411

CLI舞蹈网课项目解析:高级Jazz课程的技术实现与学习体验

在线教育平台通过技术架构实现个性化学习路径,其核心原理包括内容分层存储、智能推荐算法和实时反馈机制。这种技术方案在教育领域具有重要价值,能够根据学员水平动态调整教学内容,提升学习效率。在舞蹈教学场景中,系统通过动作识别技术分析学员表现,结合分层教学设计,为高级舞者提供针对性训练。CLI舞蹈网课项目正是基于这一理念,采用课程学习界面(CLI)和智能进度跟踪,为《Take My Hand》Jazz高级课程构建了完整的学习生态系统,解决了传统教学缺乏交互性和个性化的问题。

weixin_33787529的博客 307

Linux下fastai第二章实操指南:DataLoaders与cnn_learner深度解析

DataLoaders是PyTorch生态中统一数据加载与预处理的核心抽象,其设计融合了多进程、内存映射与设备协同等底层机制;cnn_learner则封装了模型构建、头网络适配与损失绑定等关键流程,本质是面向任务的可组合式训练器。这类高阶API的技术价值在于大幅降低CV项目工程门槛,同时保留对CUDA调度、张量生命周期和批处理策略的精细控制能力。典型应用场景包括图像分类、医学影像分析及边缘端模型微调——尤其在Linux服务器环境下,需直面CUDA驱动兼容性、num_workers内存泄漏及OpenCV/PI

447

claude-howto の Claude Code 学習ロードマップ完全ガイド:自己評価からマイルストーン達成まで 11 ステップで段階的に習得する

本記事は、claude-howto リポジトリの日本語版学習ロードマップ([ja/LEARNING-ROADMAP.md](https://link.gitcode.com/i/efed2a458388c2d0ee3b51ea2b7f93f5))を主題に、Claude Code をゼロから体系的に習得するための全体設計を解説する。自己診断クイズで現在のレベルを判定し、初級(レベル 1)→ 中級(レ

gitblog_00255的博客 388

从《新概念英语》Lesson 11看跨文化沟通:程序员如何避免在海关被当成“可疑分子”?

本文探讨技术从业者在跨国旅行中如何避免海关误解,提供电子设备申报策略、代码数据合规携带方案及专业沟通技巧。通过实用案例和话术模板,帮助程序员用通俗表达替代专业术语,实现高效通关,特别适用于携带树莓派等开发板的情况。

weixin_30785593的博客 362

Lesson_6 作业_2 ---- 银行账户模拟

一、作业描述   Account.java文件中定义了一个银行帐户类Account,其中包括了帐户名属性accountName、存款余额属性amount、存款方法deposit(doublemoney)。阅读并理解这个类,并为其增加一个“取款”方法withdraw():当存款余额大于取款金额时,执行取款修改余额;当存款余额小于取款金额时,不执行取款;以返回值0表示取款成功,返回值1表示取款...

weixin_30737363的博客 135

claude-howto 学习路线图:11–13 小时从零到 Claude Code 高级用户的系统性进阶指南

claude-howto 是一个以可视化、示例驱动方式讲解 Claude Code 的仓库,而 `LEARNING-ROADMAP.md` 正是这套教程的"总纲":它把仓库中从 `01-slash-commands` 到 `10-cli` 的 10 个功能模块按"依赖关系 → 复杂度 → 使用频率"重排为一条渐进式学习路径,并配以自评测试、里程碑实战练习、进度核对清单与时间估算。读完本文,你将掌握

gitblog_00018的博客 454
上一篇: linux学习lesson44
下一篇: linux学习lesson46
InfiniteIdea_Go
博客等级 码龄8年 3粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值