总结之: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,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
215 1
|
23天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
72 2
|
27天前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
63 1
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
106 1
|
1月前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
121 1
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
50 1
|
1月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
247 0
|
1月前
|
Linux
CentOS-Stream-9配置chfs
通过上述步骤,您就可以在CentOS Stream 9上配置并运行CHFS,为用户提供基于HTTP的文件分享服务。请注意,实际操作时应根据CHFS的具体版本和文档进行适当调整。
52 0
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
107 64
|
12天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。