友情提示:以下所有的测试,都是在selinux开启的状态下并且firewalld也是开启的状态下进行!

一、概念

DNS端口的问题,涉及两个功能的开启!

(1)Apach 和Nginx概念!

Apach的客户端(IE、chrome、firefox)和服务器端(Apach、IIS)

同步阻塞和异步非阻塞

二、配置文件的相关说明

rpm -ql rpm -ql httpd.x86_64

rpm -qc rpm -ql httpd.x86_64

DocumentRoot -->httpd服务的根目录!

apach的基础信息(默认-->主配置目录|文件、子配置目录|文件、默认发布目录|文件、默认端口、上下文、默认用户、日志)

三、功能模块的说明

思路:以需求为导向,对配置参数进行说明!

3.1)端口的问题

3.1.1)默认端口的问题

需求1:外界可以通过Apach的客户端访问

核心步骤

(1)服务器端-->apachfirewall-cmd --add-port=80/tcp -->临时设置,一旦reload则会失效!安装httpd软件,并开启服务!(2)客户端-->firefox测试:http://172.25.2.105(3)结果:可以访问到服务器端口的测试页面说明:完整的URL应该有端口(默认是80)所以不用写,其次服务器端相应的目录没有首页,所以用的是默认的!

需求2:80端口被占用,修改为8080端口,让外界来访问

核心步骤

(1)服务器端的操作1.1) 修改主配置文件的监听端口vim /etc/httpd/conf/httpd.conf -->Listen 8080(42行左右)1.2)防火墙的设置firewall-cmd --add-port=8080/tcp -->设置后可以查看以下(由于不是永久的,所以不要reload)(2)客户端的测试http://172.25.2.105:8080/

需求3:80端口被占用,修改为8888的端口

粗略步骤见需求2

实验现象:客户端无法访问!

原因分析

  selinux的原因,默认并没有开启8888的端口查看方式:semanage port -l |grep http -->http_port_t

解决策略

(1)semanage port -a -t http_port_t -p tcp 8888(2)重新reload(3)客户端通过8888端口来访问,访问不了!(4)原因-->防火墙只是临时允许http服务,由于reload,所以服务也不通过firewall-cmd --permanent --add-service=httpfirewall-cmd --reload (5)重新测试!

3.2)首页的问题

说明:如果没有首页,则默认是Apach的测试页面!

默认首页的位置

vim /etc/httpd/conf/httpd.conf -->主配置文件中(1)先查找此xml配置模块中是否有内容<IfModule dir_module>DirectoryIndex index.html(定义站点主页面,从左到右匹配到的文件,将作为默认主页返回)
</IfModule>(2)找不到的话加载/etc/httpd/welcome.conf 以这个文件作为首页 usr/share/httpd/noindex/index.html测试:file:///usr/share/httpd/noindex/index.html是否是默认的内容

需求4:默认首页不是自己想要的,修改默认首页的内容

方式1:知道了加载顺序,就直接修改welcom.conf配置中的执行即可,不推荐

方式2:既然是因为找不到/var/www/html/index.html才启用默认的首页,那么就建立一个即可

 (1)vim /var/www/html/index.html(2)<a href=http://www.baidu.com> 百度以下 </a>(3)systemctl reload httpd说明1:默认发布目录是在/var/www/html (主配置文件中可知)
说明2:上面是一个超连接,如果你虚拟即可以上网的话,就可以连接到百度!

需求5:即使index.html访问不到,但是我也不想访问默认的页面

说明:可以指定多个首页,但是有访问顺序

访问规则:只有前面的首页资源存在,后面的才能访问,最好都是以index为前缀,例如:index.html index.jsp!

164行左右

说明:对于需求4中,因为默认已经有一个index.html,所以没有写文件名字!

<IfModule dir_module>DirectoryIndex home.html index.html
</IfModule>说明:164行左右

3.3发布目录的问题

DocumentRoot理解

DocumentRoot1:外界访问资源的根目录2:默认情况下,所有的请求都指向此目录,符号链接和别名可指向其它位置!3:默认情况下,客户程序请求的URL就被映射为这个目录下的网页文件,不做限定的话是客户端可以访问资源的根目录!准确:DocumentRoot指向路径URL的"起始"位置,外界访问资源的根路径!

Document进行限定理解

 注意:DocumentRoot下的并不是所有东西都希望被浏览器访问;举例1:像符号连接对应的文件就可以通过目录访问控制中提供的followsymlinks选项来打开或关闭支持与否!举例2:还可以利用 order  allow,deny 命令来控制访问服务器的一个固定区域及控制禁止访问服务器的主机!

服务器端配置

(1)创建发布目录,并更改上下文类型,被httpd和selinux识别(2)修改主配置文件 /etc/httpd/conf/httpd.confDocumentRoot "/www/html/"  #120左右(将原来的注释)(3)客户端测试

结果:客户端无法正常访问

原因:服务器端没有定义,外界就没有访问权限

DocumentRoot "/www/html/"
########增加的部分########
<Directory "/www/html">Require all granted
</Directory>

3.4)访问控制

3.4.1)基于IP

需求6:我只想让某个区域的主机访问,其余的主机拒绝让其访问我的资源,让250的主机的用户可以访问,其它的禁止!

DocumentRoot "/www/html/"<Directory "/www/html">Require all granted     #必须加上!Order  Deny,Allow       #次序很重要,注意有,号隔开(不是空格!!!)(首字母大写)Allow from 172.25.2.250 #可以指定IP或者网段(白名单)Deny  from All          #黑名单
</Directory>注意:#号不能在有效的语句段后面,上面的在实际场景中有问题!

Require指令集合

Require 常见的访问控制指令Require all granted            #允许所有来源访问
Require all denied             #拒绝所有来源访问
Require expr expression        #允许表达式为true时访问
Require ip 10.172.20 192.168.2 #允许特定IP段访问,多个段之前用空格隔开,每个段使用开头几项表示
Require host host_name         #只允许来host_name主机访问 

排错小技巧

(1)httpd -t 可以检查语法错误(2)/etc/httpd/logs/error -->可以检查客户端访问失败的原因(3)systemctl status httpd -l 结合 journal -xn 看日志错误!

3.4.2)基于用户的

引入:通过Order的形式可以限制某些IP主机用户的访问,但是对于某些拨号的形式获取的IP是动态的,如何限制用户访问

思路:即让IP是动态的,我们可以针对这些受保护的数据进行密码验证的方式来让用户具有浏览的权限,不用受Order的限制

需求6:通过密码认证的方式对网页的数据进行保护

Apach提供一个简单的认证功能,可以让我们轻松的设置好密码来保护网页!(1)建立受保护的目录--->客户端访问某个资源的时候,出现用户名和密码的登陆框!(2)设置Apach所需的参数分许1:由于有用户名和密码,就需要有密码文件,那如何产生用户名和密码的文件呢?分析2:有了用户名和密码的文件之后,是不是httpd得识别并加载呢?如何设置?说明:这里用最基本(basic)的认证模式(默认),不用其它的认证机制!basic的理解:用户名和密码在传输的过程中是以明文的形式,不安全!后续:更深层次的需求:及时生效,不用重新启动Apach!

说明:为了放置其它人意外的删除,以隐藏文件的形式来创建!

(1)创建http的虚拟用户,并对密码加密

格式:htpasswd [参数] 用户名和密码的文件 用户参数说明:c(创建,一般第一次用,如果每次都创建文件则会覆盖原来的信息),m(md5的加密方式)(1)首先创建一个虚拟的用户列表-->隐藏文件,放置别人误删!htpasswd -cm /etc/httpd/.htpass_file admin(用户名)说明:需要连续两次输入密码

(2)主配置文件加载

<Directory "/www/html">#Require all granted#Order  Deny,Allow#Allow from 172.25.2.250#Deny  from AllAuthUserFile "/etc/httpd/.htpasswd"               #数据库文件AuthType basic                                    #授权的模式AuthName  "PLease input username and password!"  #提示信息Require user user1                                #允许访问的用户#Require valid-user                               #多用户访问(注意没有user关键字)!
</Directory>说明:基于IP的必须全部删除或者注释!

(3)服务器reload,客户端访问

说明:以上相应的配置参考自httpd的帮助文档

yum install -y httpd-manual.noarch

了解:通过帮助文档,我们知道还有用户组和.htaccess文件的使用!

帮助文档的查看:172.25.254/manual

Linux中级(三)Apach初涉相关推荐

  1. linux中级篇--网络相关命令

    网络相关命令 Linux中常见的网络相关命令如下表所示,本书将选取其中使用较频繁的命令进行讲解. 命令 说明 格式 ifconfig 显示或设置网络设备 ifconfig [网络设备][选项]- pi ...

  2. linux 中级 教程pdf,Linux初中级学习者指导Linux操作系统技术合集.pdf

    红联的个人空间 Linux操作系统技术合集 作者:红联 Linux操作系统技术合 集 ─────Linux初, 中级学习者教程 Linux有些神奇,有人就这么说,Linux有些意思,我想尝尝,尚末安装 ...

  3. linux中三个time:atime、mtime、ctime

    linux中三个time:atime.mtime.ctime Linux文档的时间一般分三种:Access time-atime(访问时间).Modification time-mtime(内容修改时 ...

  4. Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解

    通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器. 我们首选的文本编辑器是 Vim(至于为什么,可查看<Vi和Vim的区 ...

  5. Linux(三):VMware Tools安装

    Linux(三):VMware Tools安装 文章目录 1 简介 2 作用 3 方法 1 简介 VMware Tools是VMware Workstation 虚拟机软件的增强工具包,是VMware ...

  6. linux怎么显示第三个数据,从零开始的linux 第三章

    从零开始的linux 第三章 同学们~起床咯~~(小编拿着喇叭在宿舍楼下喊道) 美好的一天从...从赞小编的博客开始~~ (↓看见小编的同学们) 什么!?你们对着可爱的小编说什么!?再说一遍!!? 同 ...

  7. 从U盘运行Linux操作系统的三种方法

    摘要: 从U盘运行Linux操作系统的三种方法 usb_linux_0 你或许听说过在U盘上运行live Linux操作系统,但你知不知道可以永久的保存运行时的数据,或者直接将Linux安装到U盘?本 ...

  8. Linux 中三种引号(单引号、双引号、反引号)的区别

    1.双引号 保护特殊元字符和通配符不被 shell 解析,但是允许变量和命令的解析,以及转义符的解析. 2.单引号 单引号内不允许任何变量.元字符.通配符.转义符被 shell 解析,均被原样输出. ...

  9. Linux学习(三)

    Linux学习(三) vim编辑器与shell脚本 vim文本编辑器 在linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数 vim编辑器中设置了三种模式 命令模式 末行模式 编辑模 ...

最新文章

  1. UITableView HeaderView,FooterView 使用SnapKit布局导致约束异常
  2. 好的架构是有价值观的
  3. log4j配置不生效
  4. RAM测试方法 C语言实现,有哪些常用单片机系统RAM测试方法?基于种子和逐位倒转的RAM故障测试法有什么优点?...
  5. python操作mongo(2)
  6. if something reaches the top
  7. 第22天:如何使用OpenAI Gym和Universe构建AI游戏机器人
  8. Inno Setup 打包安裝判斷是否安裝.net freamework 3.5 和 access2007的數據連接
  9. Java回文数.如12321,123454321(5个数)
  10. 《Reids 设计与实现》第十章 客户端
  11. 质量故事(4)---割草的男孩
  12. [转载] python oct_Python oct()
  13. 获取Adobe Flash 及Reader安装包
  14. Linux 基础入门 04
  15. 使用RedRocket方便的查看证券数据
  16. 《Conditional BERT Contextual Augmentation》论文笔记
  17. 天气插件平台-天气预报插件-免费天气预报代码—中国天气网
  18. 谁才是商超的救世主?
  19. 车势科技发力汽车VR,继阿里BUY+之后再现VR购物挑战者
  20. Minicom安装和使用和lte调试方法

热门文章

  1. How to install PostgreSql 10 to Fedora 27
  2. 正在更新office,然后一直打不开
  3. 小学四年级家长计算机,小学四年级家长评语【精编版】
  4. 关于excel引用外部excel的取值问题
  5. 学习日记day38 平面设计 字体设计
  6. 内卷 - 内卷化 - 过密化 - involution
  7. android手机避免不必要的流量,老生常谈 如何防止手机流量偷跑六小招
  8. 【图解】机箱前置USB线连接方法
  9. 宠物刷新服务器维护,2018年11月21日维护公告:宠物专属内丹更新
  10. Chrome不能打开千牛客户端的解决方法