总结之:CentOS 6.5 HTTPD服务的全面解读及配置详解(2)

简介:

CGI(Common Gateway Interface):通用网官接口、这是一种协议。

   httpd这个服务他只是把客户端的请求识别成哪种类型、而后响应给客户端、他的识别是靠文件的后缀名来识别文件类型的和文件内容、当他无法识别时他直接让你下载、让你自己处理了、httpd本身是无法执行脚本的、现在我们在/usr/local/apache/htdocs/目录下创建一个test.sh的脚本文件、因为我这里的apache的工根目录就是这个路径下、可以查看一下配置文件、也可以改配置文件:
   wKiom1MwNfODwQVsAAA3zP4t0ww828.jpg

   # vim /usr/local/apache/htdocs/test.sh
   #!/bin/bash
   #
   echo "hello word!"
   OK、保存退出、测试一下我们可以看到浏览器提示让我们下载这个文件

   wKiom1MwNj_hTjp5AAF3UhTjC40122.jpg
   

   于是我们把test.sh的后缀名给去掉、再去试一下:
   # mv test.sh test

   wKiom1MwNnDhotFuAABr1T41JCU996.jpg
   直接显示文件中的内容、没有执行里面的脚本、而我们想要的只是他echo里的值而已、在这里httpd本身无法执行脚本、因此我们想在服务器端执行脚本后再把结果返还给客户端、那要怎么实现呢、要执行test.sh脚本就要httpd基于CGI协议调用shell解析器了、那他又是怎么调用的呢、这里就用到我们所说的CGI了、那CGI的工作原理是什么呢:
   wKioL1MwNI_hQUivAAJfG6K4SK0522.jpg

   注意:CGI这种协议过于粗糙和简陋、并且基于这个模式通信时他要求后端被调用的这个解释程序为了达到某种目的、为了获取某种资源、必须以管理员的身份运行、这样很危险。CGI很多程序都要求具有SUID(执行这个程序时不以用户的身份运行、而是以文件的属主的身份运行)或SGID(以文件的属组运行)的权限。

   实现步骤:
   编辑主配置文件、/etc/httpd24/httpd.conf、定义ScriptAlias、手动编译时要把CGI的模块启用了(LoadModule cgi_module modules/mod_cgi.so)
   # vim /etc/httpd24/httpd.conf

   wKioL1MwNo7CCzNrAABg-Mdhhg4435.jpg

   # mv /usr/local/apache/htdocs/test /usr/local/apache/cgi-bin/
   # cd /usr/local/apache/cgi-bin/
   # vim test
   保存退出后测试一下、OK、这就可以看到脚本执行后返回的结果了。

   wKiom1MwNu3y9TMeAAB7e0RNDS8848.jpg

   wKioL1MwNwqiCmujAADaHJ2rKfg477.jpg

基于用户的访问控制:
   如果我们要基于用户的访问控制、那就意味我们的网页文件不是所有人都可以访问、也不管来自哪个IP地址、必须输入一个合法的帐号和密码才可以访问、这就是http的认证机制:
   认证类型有两种:basic(基本认证)和digest(摘要认证)、基本认证的帐号和密码是明文发送的、摘要认证是根据hash编码以后发送的。
   编辑主配置文件:
   # vim /etc/httpd24/httpd.conf
   # mkdir -p /www/htdocs/fin
   # cd /www/htdocs/fin
   # vim index.html
   # htpasswd -c -m /etc/httpd/conf/.htpasswd tom
   -c:表示创建这个文件
   -m:表示用MD5加密的存放密码

   wKiom1MwN6TjAFBcAAEBOiY2pgk254.jpg

   wKioL1MwN6uDmHl5AAEconAgtck268.jpg

   好了、我们来访问试试、输入tom的帐号密码就可以访问了:

   wKioL1MwOAKxSBrDAAEbsaW4u-E548.jpg

   wKiom1MwODaRY1n2AAB-qCzBGOM154.jpg


虚拟主机:
   在我们的web服务器上想提供多个站点、比较我们想让一个服务器提供三个站点、那我们就用得虚拟主机了、所谓虚拟主机就是一个物理服务器提供多个站点。
   要建立虚拟主机、那这些主机要怎么去做区别呢、这里我们有三种不同的方法、一个是基于不同的IP来实现虚拟主机的、另一种基于不同的端口来实现虚拟主机的、还有一种是基于主机名(FQND)来实现虚拟主机的、要注意一点的是:要使用虚拟主机提供多个站点时、得先关闭中心主机
   先关闭/etc/httpd24/httpd.conf下的中心主机

   wKioL1MwOMGjhlb7AAA9cl3msTo328.jpg


   # vim /etc/httpd24/httpd.conf
   # vim /etc/httpd24/extra/httpd-vhosts.conf

   wKiom1MwOJjTpbMcAAFsqgYNbmo936.jpg


   # cd /usr/local/apache/htdocs
   # mkdir a b
   分别在a和b下创建两个html文件
   # vim index.html
   <h2>www.a.com</h2>
   <h2>www.b.com</h2>

   wKiom1MwOWvzZ2fIAAHXL2DR98w684.jpg
   修改了配置文件都要重启一下服务:
   # service httpd24 reload

   测试一下基于不同的IP地址访问的、都可以了哦!

   wKioL1MwOX6Afd3iAABmS84DKJs585.jpg

   wKiom1MwObLiBIKbAACH7dOHvzw720.jpg


基于端口访问的、那我们就改一下配置文件就可以了
   # vim /etc/httpd24/extar.httpd-vhosts.conf
   wKiom1MwOeeQXR7PAAIr9SlbHZ8831.jpg
   

   还要在主配置文件中添加一个8080的端口:
   # vim /etc/httpd24/httpd.conf
   Listen 8080

   wKiom1MwOh6hoqS9AAAiDlUqogc046.jpg


   重启一直服务、再测试一下不同的端口访问:
   # service httpd24 reload

   wKiom1MwOlyx9gDpAACW73_bUm8178.jpg

   wKioL1MwOj-hP-5mAACMiYHa7aU365.jpg


   基于FQND的不同虚拟主机来访问的、在httpd2.2以上的版本当中要基于虚拟主机的访问有一个前提、得在定义虚拟主机的配置文件里把NameVirtualHost *:80这项给启用起来、没有这项得自己手动添加进去、则否将无法访问。
   # vim /etc/httpd24/extra/httpd-vhosts.conf 
   NameVirtualHost *:80

   wKioL1MwOoHTBF5JAAKxFOnoURw828.jpg

   配置好之后那怎么解析我们的FQND呢、这里我们就不做解析了、直接在windows下的hosts下明确指定就可以了、编辑C:\Windows\System32\drivers\etc\hosts下的这个文件、加这三个域名地址就可以了、保存退出测试一下咯:
   wKiom1MwOsmTJav4AABhapMuVqA548.jpg

   wKiom1MwOwaAYpfuAABkdSzAOiI505.jpg

   wKioL1MwOurAgyY7AABk-PlxZMk674.jpg

   wKiom1MwOx2zYYrlAABkLApa6FI995.jpg

   好、这就是我们基于虚拟主机的几种不同的设置。


   httpd的各种配置各种功能、有待我们一一去设置、去尝试、功能强大、配置简单、不过、小生初来咋到、有什么做得不妥之处还望大神指点、在此先谢谢你的关注了!










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1381795,如需转载请自行联系原作者
目录
相关文章
|
19天前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
22 1
|
6天前
|
存储 关系型数据库 Linux
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
28 4
|
8天前
|
Linux
CentOS 7 配置yum阿里源 (三步即可)
CentOS 7 配置yum阿里源 (三步即可)
106 1
|
14天前
|
XML JSON Java
【亮剑】在CentOS上搭建Solr 7单机服务的流程
【4月更文挑战第30天】本文介绍了在CentOS上搭建Solr 7单机服务的流程。首先确保系统安装Java,然后下载解压Solr 7压缩包,进入目录创建运行目录和日志目录,使用命令启动Solr服务。通过浏览器访问管理界面,创建Collection和Core。接着配置数据导入,创建`example_docs`文件夹存放数据,通过管理界面导入数据。最后进行查询测试,完成Solr的基本使用。
|
19天前
|
网络协议 Java 应用服务中间件
记录_centos7离线环境和虚拟机共享文件安装jdk和tomcat(配置环境变量)
记录_centos7离线环境和虚拟机共享文件安装jdk和tomcat(配置环境变量)
11 0
|
20天前
|
Linux 网络安全 开发工具
Centos7 sendmail服务安装与配置
该文本描述了在Linux系统中设置邮件服务的步骤。首先,启用httpd的邮件发送功能,然后安装sendmail、sendmail-cf和dovecot。接着配置/sendmail.mc,设定IP和邮件域名。在dovecot配置文件中启用imap、pop3和lmtp协议,取消明文认证限制,设定mail_location,并开启SSL。创建用户mail3和mail4,给予相应权限。停止postfix服务,编辑访问控制、提交配置、本地主机名等文件。最后,重置sendmail、dovecot和saslauthd服务。
47 0
|
20天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
56 0
|
20天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
18 0
|
Linux Apache 数据安全/隐私保护