学习Linux打卡计划(第十二天)

使用 Apache 服务部署静态网站html


  咱们平时访问的网站服务就是 Web 网络服务,通常是指容许用户经过浏览器访问到互联网中各类资源的服务。Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其余主机发出的请 求后才会响应,最终用于提供服务程序的 Web 服务器会经过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。目前可以提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。IIS(Internet Information Services,互联网信息服务)是 Windows 系统中默认的 Web 服务程序,这是一款图形化的网站管理工具,不只能够提供 Web 网站服务,还能够提供 FTP、NMTP、SMTP 等服务。linux


  Nginx 程序做为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但 Nginx 最被承认的还当是系统资源消耗低且并发能力强;Apache 程序是目前拥有很高市场占有率的 Web 服务程序之一,其跨平台和安全性广 泛被承认且拥有快速、可靠、简单的 API 扩展。apache


Apache 服务程序的部署:vim

1.把光盘设备中的系统镜像挂载到/media/cdrom 目录,mkdir -p /media/cdrom  ->  mount /dev/cdrom /media/cdrom 浏览器

2.使用 Vim 文本编辑器建立 Yum 仓库的配置文件,vim /etc/yum.repos.d/rhel7.repo,配置文件的标准格式为:安全

  name=rhel7服务器

  baseurl=file:///media/cdrom  网络

  enabled=1  并发

  gpgcheck=0编辑器

3.安装 Apache 服务程序,使用 yum 命令进行安装时,跟在命令后面的 Apache 服务的软件包名称为 httpd。若是直接执行 yum install apache 命令,则系统会报错。因此命令为:yum install httpd。

4.启用 httpd 服务程序并将其加入到开机启动项中,使其可以随系统开机而运行, 从而持续为用户提供 Web 服务:

  systemctl start httpd

  systemctl enable httpd


  在 httpd 服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置。全局配置参数与区域配置参数的区别:全局配置参数就是一种全局性的配置参数,可做用于对全部的子站点,既保证了子站点的正常访问,也有效减小了频繁写入重复参数的工做量。区域配置参数则是单独针对于每一个独立的子站点进行设置的。

配置服务文件参数:

  服务目录:/etc/httpd

  主配置文件:/etc/httpd/conf/httpd.conf

  网站数据默认目录:/var/www/html


SELinux安全子系统

  RHEL 7 系统使用 SELinux 技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。对服务程序的功能进行限制(SELinux 域限制能够确保服务程序作不了出格的事情);对文件资源的访问限制(SELinux 安全上下文确保文件 资源只能被其所属的服务程序进行访问)。

selinux域:限制服务功能;

selinux安全上下文:限制文件权限(限制文件只能被谁所获取)。


SELinux主配置文件:/etc/selinux/config,以及SELinux服务有三种配置模式:

  enforcing:强制启用安全策略模式,将拦截服务的不合法请求。

  permissive:遇到服务越权访问时,只发出警告而不强制拦截。 

  disabled:对于越权的行为不警告也不拦截。


查看当前selinux状态命令:getenforce

  临时关闭selinux:setenforce 0

  临时开启selinux:setenforce 1 
  策略获取:getsebool

  策略设置:setsebool 


  semanage命令用于管理 SELinux 的策略,在使用 semanage 命令时,经常使用到的几个参数-l 参数用于查询;-a 参数用于添加;-m 参数用于修改;-d 参数用于删除。

  添加一条 SELinux 安全上下文,让这个目录以及里面的全部文件可以被 httpd 服务程序所访问到:semanage fcontext -a -t httpd_sys_content_t /home/wwwroot (/home/wwwroot后不用加“/”,即/home/wwwroot/是错误的)。

  使用 restorecon 命令将设置好 的 SELinux 安全上下文当即生效,在使用 restorecon 命令时,能够加上-Rv 参数对指定的目录 进行递归操做,以及显示 SELinux 安全上下文的修改过程。命令为:restorecon -Rv /home/wwwroot


我的用户主页功能:httpd 服务程序提供的我的用户主页功能可让系统内全部的用户在自己的家目录中管理我的的网站,并且访问起来也很是容易,操做步骤:

  1.在 httpd 服务程序中,默认没有开启我的用户主页功能。咱们须要编辑下 面的配置文件,而后在第 17 行的 UserDir disabled 参数前面加上井号(#),表示让 httpd 服务程序开启我的用户主页功能;同时再把第 24 行的 UserDir public_html 参数前面的井号(#) 去掉(UserDir 参数表示网站数据在用户家目录中的保存目录名称,即 public_html 目录)

  2.在用户家目录中创建用于保存网站数据的目录及首页面文件,且把家目录的权限修改成 755,保证其余人也有权限读取里面的内容。

  3.从新启动 httpd 服务程序,在浏览器的地址栏中输入网址,其格式为“网址/~ 用户名”(其中的波浪号是必需的,并且网址、波浪号、用户名之间没有空格)。

  4.使用 getsebool 命令查询并过滤出全部与 HTTP 协议相关的安全策略,使用setsebool命令来修改 httpd_enable_homedirs的布尔值:setsebool -P httpd_enable_homedirs=on



虚拟主机功能:能够把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。Apache 的虚拟主机功能是服务器基于用户请求的不一样 IP 地址、主机域名或端口号,实 现提供多个网站同时为外部提供访问服务的技术,用户请求的资源不一样, 最终获取到的网页内容也各不相同。


基于IP地址:若是一台服务器有多个 IP 地址,并且每一个 IP 地址与服务器上部署的每一个网站一一对应, 这样当用户请求访问不一样的 IP 地址时,会访问到不一样网站的页面资源。

1.分别在/home/wwwroot 中建立用于保存不一样网站数据的 3 个目录,并向其中分 别写入网站的首页文件。

 mkdir -p /home/wwwroot/10

 mkdir -p /home/wwwroot/20

 echo "IP:192.168.10.10" > /home/wwwroot/10/index.html

 echo "IP:192.168.10.20" > /home/wwwroot/20/index.html

2.在 httpd 服务的配置文件中大约 113 行处开始,分别追加写入三个基于 IP 地址的虚 拟主机网站参数,而后保存并退出。

  vim /etc/httpd/conf/httpd.conf


  <virtualhost 192.168.10.10>

  documentroot /home/wwwroot/10

  servername www.linuxprobe.com

  <directory /home/wwwroot/10>

  allowoverride none

  require all granted

  </directory>

  </virtualhost>


  <virtualhost 192.168.10.20>

  documentroot /home/wwwroot/20

  servername www.linuxprobe.com

  <directory /home/wwwroot/20>

  allowoverride none

  require all granted

  </directory>

  </virtualhost>


  systemctl restart httpd


3.手动把新的网站数据目录的 SELinux 安全上下文设置正确,并使用 restorecon 命令让新设置的 SELinux 安全上下文当即生效,这样就能够当即看到网站的访问效果了。

  semanage fcontext -a -t httpd_sys_content_t /home/wwwroot  

  semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10  

  semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*  

  semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20  

  semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*  

  restorecon -Rv /home/wwwroot  



基于主机域名:当服务器没法为每一个网站都分配一个独立 IP 地址的时候,能够尝试让 Apache 自动识别 用户请求的域名,从而根据不一样的域名请求来传输不一样的内容。



基于端口号:基于端口号的虚拟主机功能可让用户经过指定的端口号来访问服务器上的网站资源。 在使用 Apache 配置虚拟网站主机功能时,基于端口号的配置方式是最复杂的。



Apache访问控制:Apache 能够基于源主机名、源 IP 地址或源主机上的浏览器特征等信息对网站上的资源 进行访问控制。它经过 Allow 指令容许某个主机访问服务器上的网站资源,经过 Deny 指令实 现禁止访问。在容许或禁止访问网站资源时,还会用到 Order 指令,这个指令用来定义 Allow 或 Deny 指令起做用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。能够实现控制网站只能被火狐浏览器访问。步骤:

1.先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中建立一个包含 Successful 单词的首页文件。

  mkdir /var/www/html/server

  echo "Successful" > /var/www/html/server/index.html


2.打开 httpd 服务的配置文件,在第 129 行后面添加下述规则来限制源主机的访问。 这段规则的含义是容许使用 Firefox 浏览器的主机访问服务器上的首页文件,除此以外的全部请求都将被拒绝。修改配置文件的参数:vim /etc/httpd/conf/httpd.conf

 

   <Directory "/var/www/html/server">  

   SetEnvIf User-Agent "Firefox" ff=1  

   Order allow,deny  

   Allow from env=ff  

   </Directory>

3.重启httpd服务

  systemctl restart httpd


3e0df0107423e613a3d480547299c55.jpg

相关文章
相关标签/搜索