Apache服务的概念:

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一

apache的基础信息:
主配置目录: /etc/httpd/conf
主配置文件: /etc/httpd/conf/httpd.conf
子配置目录: /etc/httpd/conf.d/
子配置文件: /etc/httpd/conf.d/*.conf # 在子配置目录中所有的以.conf结尾的文件
默认发布目录: /var/www/html
默认发布文件: /var/www/html/index.html #默认发布目录中index.html文件名称固定
apache 的默认端口是80/tcp

1,apach服务的部署:

  yum install httpd   -y      #安装Apache的默认服务器软件:httpd
  systemctl start httpd      #开启服务
   systemctl enable  httpd #开机自启动服务
  firewall-cmd  --list-all     #列出火墙信息
  firewall-cmd  --pernanent --add-service=http  # 永久允许http
  firewall-cmd  --reload    # 火墙重新加载策略

在这里插入图片描述“Nothing to do’ 表示已经安装过了。
在这里插入图片描述1)修改默认端口:

 vim /etc/httpd/conf/httpd.conf      #修改默认端口为8080
  42行 Listen 8080

 firewall-cmd --permanent --add-port=8080/tcp   #更改通过防火墙的端口为8080

 firewall-cmd --reload    #火墙重新加载策略
 firewall-cmd  --list-all     #列出火墙信息

在这里插入图片描述
在这里插入图片描述
2)添加默认端口:

  semanage port -a -t http_port_t -p tcp 8888  #添加默认端口为8888
  systemctl restart httpd重启服务。
  semanage port -l | grep http    #查看http服务器的默认端口

在这里插入图片描述
3)修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件,这个文件可以指定多个,有访问顺序。

 vim /etc/httpd/conf/httpd.conf     #编辑主配置文件,且默认端口必须是80

 164行    DirectoryIndex  test.html index.html   #当test.html不存在时访问 index.html

 vim /var/www/html/test     #文件内容随便编辑

 systemctl restart httpd重启服务。

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述测试:
在火狐游览器里面输入: 172.25.254.114查看内容是否被更改。

在这里插入图片描述
4)修改默认发布目录:

   mkdir /www/html -p     #创建新的目录 

 semanage fcontext -a t httpd_content_t '/www/html(/.*)?'     #更改安全上下文
 rstorecon -RvvF /www/     #刷新安全上下文

 vim /www/html/index.html   #编辑文件内容(随意编辑)

 vim /etc/httpd/conf/http.conf   #编辑配置文件
 内容:
 120行   DcumentRoot "/www/html"
 121行   <Directory "/www/html">
 122行           Require all granted
 123行   </Directory>

 systemctl reload httpd    #重新加载服务,或者systemctl restart httpd重启服务。

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述5)访问控制(服务端)

ip控制:

  • ip控制(白名单):

      编辑配置文件:vim /etc/httpd/conf/httpd.conf
      120行   <Directory "/www/html">
      122行           Require all granted
                           Order Deny,Allow                  #只允许172.25.254.14进入,其他   ip  不可进入,“Deny"表示黑名单,"Allow"表示白名单
                           Allow from 172.25.254.114
                           Deny from All
       123行   </Directory>
    

设置所有ip 为黑名单,只有ip为172.25.254.114这台电脑是可以访问的。 在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

注:可以看出,在172.25.254.15 这台电脑上是无法看到/www/html/index.html 网页的内容的,只有在ip 为172.25.254.114 这台电脑上是可以看到的,只有这台电脑是被允许看/www/html/index.html 网页的内容的内容的。

ip控制(黑名单):

    120行   <Directory "/www/html">
    122行           Require all granted
                         Order Allow,Deny                  #允许所有ip进入,172.25.254.14不可进入,“Deny"表示拒绝,
                         Allow from All
                         Deny from 172.25.254.114
     123行   </Directory>

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述用户控制:

   cd /etc/httpd       #进入到指定目录

   创建隐藏用户:
   htpassed -cm yang  haha        #"yang"文件名称,“haha"表示用户名
   htpassed -m yang  haha1        #再次创建时不用加“c”
  
  编辑配置文件:vim /etc/httpd/conf/httpd.conf
  120行#   <Directory "/www/html">
  122行   #       Require all granted
         #       Order Allow,Deny                  
         #       Allow from All
         #       Deny from 172.25.254.14
                 AuthUserFile     "/etc/httpd/yang"
                 AuthType         basic
                 AuthName         "Please input username and password!!"
  #             Require user     haha                #只允许haha用户进入
                 Require          valid-user          #所有用户进入时都必须输入用户名和密码

在这里插入图片描述在这里插入图片描述
在这里插入图片描述6)apache的虚拟主机:
作用:可以在一个电脑上同时运行多个网站。

以下演示使用172.25.47.114 该一个ip对应 www.haha.com; music.haha.com; news.haha.com 三个站点

在服务端:
创建发布目录以及发布文件:
mkdir -p /yang/{music,news}/html #创建不同域名的发布目录
vim /yang/music/html/index.html #创建发布文件
vim /yang/news/html/index.html #创建发布文件
semanage fcontext -a -t httpd_sys_content_t ‘/yang(/.*)?’ # 修改发布目录安全上下文
restorecon -FvvR /yang/ #刷新发布目录安全上下文

在这里插入图片描述
创建虚拟主机配置文件:作为副配置文件,因该出现在/etc/httpd/conf.d/ 目录中。
vim /etc/httpd/conf.d/virthost.conf #编写虚拟主机的配置文件
在这里插入图片描述
在这里插入图片描述

   <VirtualHost _default_:80> #创建默认虚拟主机,找不到虚拟主机的域名访问也由此主机提供服务。 
              DocumentRoot /var/www/html #指定发布目录
              CustomLog logs/default.log combined #指定日志文件以及日志类型(所有 日志)
  </Virtualhost> 
 
  <VirtualHost *:80> 
              DocumentRoot /virtdir/music/html #指定发布目录 
              ServerName music.toto.com #虚拟主机指定域名 music.toto.com 
              CustomLog logs/music.log combined #指定日志文件以及日志类型(所有 日志)
 </VirtualHost>
 
 <VirtualHost *:80> 
              DocumentRoot /virtdir/news/html #指定发布目录 
              ServerName news.toto.com #虚拟主机指定域名 news.toto.com       
              CustomLog logs/news.log combined #指定日志文件以及日志类型(所有 日志) 
 </Virtualhost>
 <Directory "/virtdir">             #对新建的发布目录进行认证
              Require all granted         #允许所有人可以访问该目录
 </Directory>

测试:
在客户端编辑域名解析配置文件:/etc/hosts
对www.toto.com; music.toto.com; news.toto.com 三个域名进行解析记录,然后通过域名进行逐个访问。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

7)apache支持的语言

html

之前编写的所有发布文件都是html。都是支持使用的。

php

         rpm -q php # 查看是否安装php插件
         yum install php -y #安装该插件
         ls /etc/httpd/conf.d/ #当成功安装之后 在该目录中会生成 php.conf 文件

在这里插入图片描述在这里插入图片描述
在这里插入图片描述编写php语言发布文件:vim /var/www/html/index.php
在这里插入图片描述
在这里插入图片描述

cgi

mkdir /var/www/html/cgi #创建共享目录
semanage fcontext -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi(/.*)?’ #修改目录安全上下文
restorecon -RvvF /var/www/html/cgi/ #刷新安全上下文

vim /var/www/html/cgi/index.cgi # 编辑共享文件

 #!/usr/bin/perl
 print "Content-type: text/html\n\n";
 print  'hello  westos';

python /var/www/html/cgi/index.cgi #执行该文件

  [root@sever cgi]# python /var/www/html/cgi/index.cgi 
 Content-type: text/html


  hello  westos

给予共享文件执行权限,执行查看效果

 chmod  +x   /var/www/html/cgi/index.cgi
  /var/www/html/cgi/index.cgi

vim /etc/httpd/conf.d/virthost.conf #编辑配置文件

  <Directory "/var/www/html/cgi">
  Options +ExecCGI
  AddHandler cgi-script .cgi
  </Directory>

systemctl reload httpd.service #重新加载服务配置

测试:访问 172.25.47.104/cgi/index.cgi

在这里插入图片描述

wsgi

yum install mod_wsgi.x86_64 -y #安装wsgi模块
cd /var/www/cgi-bin #切换到/var/www/cgi-bin 目录中
vim webapp.wsgi #生成文件

  #!/usr/bin/env python 
  import time 
  def application (environ, start_response): 
  response_body = 'UNIX EPOCH time is now: %s\n' % time.time() 
  tatus = '200 OK' 
  response_headers = [('Content-Type', 'text/plain'), 
                                        ('Content-Length', '1'), 
                                        ('Content-Length', str(len(response_body)))] 
  start_response(status, response_headers) 
  return [response_body] 

vim /etc/httpd/conf.d/virthost.conf #编辑配置文件

   <VirtualHost *:80>
      ServerName   wsgi.westos.com
      WSGIScriptAlias / /var/www/cgi-bin/webapp.wsgi
   </Virtualhost>

systemctl restart httpd #重启服务

测试:
在测试主机中添加wsgi.westos.com 的本地域名解析 使用浏览器进行访问
在这里插入图片描述

Logo

更多推荐