天天看点

配置CGI、虚拟主机、https、mod_deflate、mod_status

1.CGI

CGI:Common Gateway Interface通用网关接口,这是一种独特的协议.他能帮助http处理应用程序,http本身不能执行应用程序,它仅仅只是把用户请求的资源识别是哪种类型然后返回给用户而已.比如我们登录一个网站,点击登录按钮后,http本身是不能处理这类请求的,他需要通过CGI的接口指向的目录去寻找对应的应用程序(比如:bash,python),而后应用程序执行完用户发送过来的请求,返回给用户.总的来说,CGI就是http跟应用程序的一个接口.CGI过于粗糙和简陋,他的很多执行权限都需要SUID等,所以现在很少用了,但是也需要了解他的工作机制.只有在配置文件ScriptAlias定义下的文件才能被当作CGI来执行,一个是mod_alias,是用来实现别名的,另一个mod_cgi是用来实现CGI协议的

2.虚拟主机

简单来说,虚拟主机就是一台物理服务器提供多个站点.注意:要使用虚拟主机,中心主机必须关闭.实现虚拟主机的方式主要有三种.

1:基于不同的IP实现不同的虚拟主机.(多个主机需要多个IP,代价太高)

2:基于不同的port实现不同的虚拟主机(http默认是80端口,使用不同的端口用户访问不方便).

3:基于不同的主机名实现的虚拟主机(实用).客户端发送的报文到服务器端,由服务器端的内核拆分下4层报文,再由httpd服务拆分请求首部,来识别请求的是哪台主机

3.https

http本身不具备加密的功能,对于需要传输密文的情况下就不适用了,他可以基于ssl/tls来实现加密.经常使用的是sslv3版本和tlsv1版本.https是一种二进制格式的协议,他监听在tcp的443端口,ssl只能基于ip来实现,因为他在http协议建立之前就建立了,所以如果你有多台虚拟主机,只能一台使用ssl

ssl会话的建立过程

首先tpc/ip三次握手建立连接

在tcp/ip连接的基础上开始做SSl的会话和协商

   客户端请求

   服务器发送证书

   客户端验证证书

       日期检测,是否在有效期内

       证书颁发者的可信度

       检测证书的签名是否可信

       持有者的身份检测

   交换协议版本号

   选择双方都支持的加密方式

   双方实现身份验证(通常服务器端不会验证客户端的身份)

   实现密钥交换

客户端在SSL上发送HTTP请求

服务器端在SSL上发送已加密响应

关闭SSL

关闭三次握手

httpd基于mod_ssl模块实现对ssl的支持

这里我就不做证书签署了,不会的可以去看我的上一篇文章.

3.1首先安装mod_ssl,httpd的

3.2查看/etc/httpd/conf.dssl.conf

3.3配置好一切可以重启网页查看了

配置CGI、虚拟主机、https、mod_deflate、mod_status

3.4把ca的证书导入到本地windows的主机,把ca的证书传到windows中,并改后缀为crt,双击即可

配置CGI、虚拟主机、https、mod_deflate、mod_status

4.mod_deflate

压缩数据,对于一个访问量非常大的网站来说,有时候不得不用到压缩网页的技术来节约带宽,一般来说,只压缩静态文本类的文件,对于视频和图片类的不要进行压缩,因为视频和图片的压缩比太低了.那文本类的文档是否要压缩,也要看你主机的带宽和CPU的使用情况,如果带宽很充足,而CPU快跑不动了,那就不需要压缩,反之,CPU很充足,带宽不够,那还是压缩吧.httpd自带的一个mod_deflate工具,他会调用gzip等之类的工具对指定的内容进行压缩.

4.1首先判断你的httpd是否有安装该模块

httpd -M | grep deflate

4.2在配置文件中加入/etc/httpd/conf.d/deflate.cond,并输入如下内容

4.3重启httpd服务并查看网页是否有压缩

配置CGI、虚拟主机、https、mod_deflate、mod_status

5.mod_status

httpd内置有一个status信息页面,且此信息可以通过web访问,显示httpd的属性信息,对于这种内生性的,没有文件系统路径的使用

<localtion[~]"">

</location>

如果某要配置其属性的URL能映射到某具体文件系统路径,建议使用

<Directory[~]"">

</Directory>

5-1.配置

/etc/httpd/conf

5-2.访问该页面看效果

配置CGI、虚拟主机、https、mod_deflate、mod_status

5-3.用户认证

对于5-1的设定是不安全的,所以要添加用户认证

5-4.重新装载配置文件,然后查看效果

配置CGI、虚拟主机、https、mod_deflate、mod_status

6.用户认证

6-1.创建密码