Linux学习笔记-RH135之Apache的管理及优化
Apache的管理及优化
- 1、Apache的作用
- 2、Apache的启用
- 3、Apache的基本配置
- 4、Apache的访问控制
- (1)基于ip的黑名单
- (2)基于ip的白名单
- (3)基于用户的访问控制
- 5、Apache的虚拟主机
- 6、Apache的语言支持
- (1)php语言
- (2)perl语言
- (3)wsgi(python语言)
1、Apache的作用
思考我们平时上网打开网页浏览百度时,为什么能看到各种信息,这是因为服务商把这个页面共享出来了,允许我们访问,能提供共享的软件叫Apache,我们一起遵守的协议叫http://
超文本传输协议。除了Apache还有nginx,stgw,jfe,Tengine等软件提供共享服务。
2、Apache的启用
如果想在虚拟机中测验Apache的各种功能,首先需要真机配置好网桥和软件仓库,虚拟机要配好ip和软件仓库的配置文件。这里虚拟机的ip为172.25.254.52。
dnf install httpd.x86_64 -y
安装httpd软件,systemctl enable --now httpd
开启服务并设定开机启动,由于需要外界访问自己的httpd服务,所以火墙肯定要阻拦,firewall-cmd --permanent --add-service=http
在火墙中永久开启http访问,firewall-cmd --reload
刷新火墙使设定生效。现在Apache就成功启用了。现在打开浏览器输入172.25.254.52,有测试页出现,说明开启成功。
/etc/httpd/conf/httpd.conf
是主配置文件,/etc/httpd/conf.d/*.conf
是子配置文件。默认发布的目录是/var/www/html
,http的默认端口是80,日志在/etc/httpd/logs
。
3、Apache的基本配置
(1)端口修改
在主配置文件中写了默认的端口号是80,如果想修改端口号,打开主配置文件,第45行,改为8080,
重启服务,由于火墙默认允许的端口号是80,所以修改完要专门设定允许8080,重启火墙
现在端口就更改成功了,但是浏览器输入172.25.254.52不行了,必须指定端口,输入172.25.254.52:8080,测试页就出现了。
(2)默认发布文件
现在我们不想只看测试页了,想看点内容,默认发布的目录是/var/www/html
,在该目录下创建文件,文件的名字默认是index.html
网页测试,成功
现在我想发布westos.html
这个文件的东西,内容是westos,就需要更改主配置文件,重启服务
网页测试,优先发布westos.html
这个文件的东西
(3)默认发布目录
假如不想用默认的发布目录,可以修改配置主文件,重新指定默认的发布目录/westos/html
,设定允许,重启服务,现在共享的目录就是/westos/html
了。
如果测试无法打开,一般是/westos/html
的执行权限没开。
4、Apache的访问控制
(1)基于ip的黑名单
先创建一个目录westos,假如不想让172.25.254.77访问westos目录,可以设置该目录的黑名单,如下图(顺序是先读一个范围大的,再读一个范围小的,覆盖上面的)
172.25.254.77访问提示禁止
(2)基于ip的白名单
假如现在只想让172.25.254.77访问westos目录,其他人都不允许,可以设置主配置文件,如下图,
172.25.254.77访问提示允许
(3)基于用户的访问控制
用户输入名称密码才可以访问,使用下面的命令产生认证文件,注意当文件存在时,在添加用户时不要加-c
参数否则会覆盖源文件内容。这里添加了两个用户user1和user2,输入密码。
设定主配置文件,这里只允许user2能访问(如果认证过的用户都允许,user2
的位置可以改为valid-user
)。
测试效果如下图,会跳出认证的界面,输入用户user2和密码后,才可以看到访问的内容。
5、Apache的虚拟主机
我们现在只有一个ip,想发布多个页面怎么办?就需要创建虚拟主机。
实验测试如下,先创建两个和默认目录不同路径的目录linux和java,分别创建index.html
文件,现在总共有三个页面需要发布,但是只有一个Apache。
在/etc/httpd/conf.d/
建立vhosts.conf
文件,内容如下,主要有三块内容,第一块就是默认的目录,第二块意思为访问linux.westos.org
时看/var/www/westos.org/linux
下的共享文件,第三块意思为访问java.westos.org
时看/var/www/westos.org/java
下的共享文件,并且都为他们设置了日志(combined表示所有类型日志都收集)。重启服务
由于设定了不同域名,所以需要在用浏览器测试的系统上配置地址解析,这里我是用真机的浏览器测试的,所以要配置真机的/etc/hosts
,内容如下,
测试如下,三个都成功了。
6、Apache的语言支持
上面我们写的hello Apache!
是超文本标记语言,默认就支持,那其他的语言支持吗?
(1)php语言
首先写一个文件index.php,显示php的测试页,内容如下,浏览器访问172.25.254.52/index.php
,什么都没有显示
说明默认不支持,需要安装php的插件,直接用软件仓库安装就行。安装完再测试,出现了测试页。
(2)perl语言
如果想发布一个命令的执行结果,可以吗?测试一下,先写一个文件,内容是$(date)
,我们想要的效果是网页显示现在的真实时间,测试结果如下,把源码直接发布出来了,说明Apache默认只能发布静态的页面,不支持执行命令再发布结果。
如果有一个程序想发布执行结果,只能把程序给cgi(通用网关节口),执行的结果再给Apache发布,cgi支持的语言叫perl语言。
测试如下,首先建立一个cgidir目录,创建文件index.cgi
,内容如下图
设定主配置文件,在最下方添加内容如下图,意思为对于/var/www/html/cgidir
这个目录,运行程序结果再发布,执行程序的触发条件是cgi写的,或者是以cgi结尾的文件。
重启服务,测试效果如下,成功。(注意如果文件index.cgi
没有执行权限,肯定无法执行程序)
(3)wsgi(python语言)
首先创建目录wsgidir
,编写文件,内容如下,目的是显示hello wsgi
。
想要执行这个python程序,需要安装插件python3-mod_wsgi
。在/etc/httpd/conf.d/vhost.conf
文件中设定虚拟主机,这里wsgi没有像上面使用DocumentRoot
对应目录位置,而是WSGIScriptAlisa
的方式,好处是无法看到源码,只能执行这个命令。重启服务
要记得在浏览器所在的系统设定地址解析,这里是真机设定地址解析
现在测试,成功了。
Linux学习笔记-RH135之Apache的管理及优化相关推荐
- linux学习笔记(6)磁盘管理
linux学习笔记(6)磁盘管理 文章目录 6.1磁盘命名 6.2分区方式 6.3磁盘管理 6.3.1基本分区 6.3.2逻辑卷LVM 6.3.3交换分区管理Swa ...
- Linux学习笔记之文件管理和目录管理类命令
在开始理解Linux文件管理和目录类命令之前,有必要先说一下,关于操作系统在计算机中都做了哪些工作. 0.操作系统的工作 1.文件管理,增删改查 2.目录管理 3.进程管理 4.软件安装 5.运行程序 ...
- 史上最牛最强的linux学习笔记 7.用户和用户组管理
写在最前面:前面留下来的几章内容,今天补一下. 昨天在安装虚拟机后,不知道如何创建用户.修改用户密码(还有不知道如何将ip地址配置到文件里,现在都没敢重启虚拟机)!说白了,不是不知道命令,只是一直报错 ...
- linux学习笔记-用户和群组管理文件
1.文件框架 学习linux用户管理时经常看到UID和GID.UID是指User ID,即用户ID:GID是指Group ID即用户组ID.UID和账号对应尽量不要修改.我们知道创建一个新的用户指令是 ...
- Linux学习笔记:rpm程序包管理
以CentOS为例,rpm程序包管理器的相关内容如下: CentOS的程序包管理器: 程序包的命名规则: 源代码包: software_name-VER ...
- Linux学习笔记 --网络配置及进程管理
目录 网络配置 ☆☆☆☆指定服务器 IP 设置主机名和 hosts 映射 主机名解析过程分析(Hosts.DNS) ☆☆☆进程管理 ps 父子进程 终止进程 kill.killall ☆☆☆服务管理 ...
- linux学习笔记-RH135(六):网络文件系统
网络文件系统 一.samba服务 1.samba基本信息 2.samba的安装与启用 3.samba用户的建立 4.samba用户访问家目录 6.samba访问控制 7.samba的常用配置参数 8. ...
- Linux学习笔记-RH135之文件共享系统samba、nfs和iscsi
文件共享系统samba.nfs和iscsi 1.samba的多用户挂载 2.autofs+samba 3.NFS(Net File System) 4.autofs+nfs 5.iscsi 1.sam ...
- linux文件系统的管理方法,Linux学习笔记:2.文件系统的管理命令(2)
1.命令touch: 功能:若之前对应文件不存在,创建一个新文件:若存在,则修改这个文件的最后修改期限. 语法:touch [参数] [文件名] 主要参数: -a:只更改存取时间 -c:不建立任何文件 ...
最新文章
- LeetCode简单题之两数之和 IV - 输入 BST
- 【组合数学】基本计数原则 ( 加法原则 | 乘法原则 )
- html5电影在线看,HTML5-电影影评网
- 【渝粤题库】国家开放大学2021春2019统计学原理题目
- python函数体以冒号起始、并且是缩进格式的_函数体以冒号起始,并且是缩进格式的。(3.0分)_学小易找答案...
- 特斯拉扭亏,股价暴涨;马斯克下一步:进军打车业务
- tomcat自定义错误页面
- VMware Workstation左侧不见了,左侧菜单栏不见了
- Redis HyperLogLog 是什么?这些场景使用它,让我枪出如龙,一笑破苍穹
- CrossAir CA-C03 2.4G贴片天线使用步骤
- .to(device)和.cuda()设置GPU的区别
- 403,404,503等 HTTP状态码(HTTP Status Code)
- 微信小程序实现3D轮播图
- 离开汽车之家和新车评,那些我们喜欢的车评人会活的更好
- java应该知道什么
- 取消域服务器是定期修改密码,更改域服务器用户密码
- [CreatorCocos]自定义线条 + 物理引擎
- NYIST468(Miller_Rabin+定理)
- 小程序添加关注公众号代码功能
- SNA中:中心度及中心势诠释(不完整代码)