实验1.1:redhat之搭建web服务器
实验背景:
了解Redhat Linux中的HTTP Server----Apache掌握Apache服务的安装、启动、开机自动加载
掌握Apache的基本配置:默认站点、个人主页
掌握Apache的高级配置:虚拟主机、用户访问控制、用户验证登录
掌握Apache的Options选项: Indexes、 FollowSymlinks
技术原理:
Web服务器概述Web简介:
1》Web服务器也成为WWW服务器,主要提供网上信息浏览服务。WWW是Internet的多媒体信息查询工具,正是因为有了WWW工具,才使得Internet迅速
展。
2》WWW(World Wide Web,环球信息网),简称Web,一般叫“万维网”。通过“万维网”,用简单的方法,就可以获取丰富的信息资料。且界面友好。
3》WWW采用C/S结构,作用就是整理和存储各种资源,并响应客户端软件请求,把客户端所需要的资源下载下来
HTTP&HTTPS协议简介
1》 HTTP(HyperText Transfer Protocol,超文本传输协议)
1. HTTP是Internet上应用最广泛的网络协议,WWW都遵循这个标准。它是一个C/S请求和应答的标准,使用TCP传输协议,保证数据传输的正确、有
序。
2. 通过web浏览器,HTTP客户端使用URL(Uniform/Universal Resource Locator,同一资源定位符)发起一个请求,建立一个到服务器web端口(缺省80
端口)的TCP连接。HTTP服务器在这个指定端口侦听客户端发送来的请求
HTTPS(Hypertext Transfer Protocol Over Secure Socket Layer,基于SSL的HTTP协议)
HTTPS虽然使用了HTTP协议,但是又不同于HTTP协议。它提供了身份验证与加密通信方法,使用HTTPS时,客户端与服务器的通信过程如下:
1. 客户使用https地址访问Web服务器,要求与Web服务器建立SSL连接;
2. Web服务器收到客户端请求后,将网站的证书信息(证书中包含公钥)传送给客户端;
3. 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,即信息加密等级;
4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后用Web服务器端的公钥将会话密钥加密,并传送给服务器;
5. Web服务器利用自己的私钥解密出会话密钥;
6. Web服务器利用会话密钥加密与客户端之间的通信。
实验场景:
![](https://i-blog.csdnimg.cn/blog_migrate/c101d9f91694c057205441d19bbbaaa4.png)
实验步骤:
一:基本网页实现,安装httpd服务
yum -y install httpd,安装完成后启动服务测试是否可以访问httpd服务主要配置文件:
主配置文件:/etc/httpd/conf/httpd.conf
模块功能文件:/etc/httpd/conf.d/
主页存放位置:/var/www/html
个人主页
功能:实现多个用户有不同的主页
配置:
编辑文件userdir.conf,开启17,25行
开启后,创建用户,且在用户的家目录下创建public_html目录,用于存放主页
vim /etc/httpd/conf.d/userdir.conf
客户端在访问的时候,必须要在网页后面加上“~”,这种方式不太友好,我们可以通过创建链接文件的方式去掉“~”,如下图所示
此外,还可以通过将个人家目录下的主页里链接过来,此种方式虽然也能实现,但是只可以使用一次,因为一个站点下不可以有多个主页文件
虚拟主机
虚拟主机是服务器采用的节省服务器硬件成本的技术,把两个或多个网站配置在同一台主机上来实现。经一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。
配置文件:默认没有,需要自己复制模板文件
cp -p /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
Options选项实现:
Indexes选项是否列出该文件下的内容,若文件下有index.html文件,不管怎么设置,都会显示index.html下的内容。如果没有index.html文件,则当有indexes这个参数时,就显示该文件下的内容,没有Indexes参数时,显示网页无法显示。
FollowSymlinks
是否显示目录下的链接文件。此参数的使用是在没有Index.html文件但有indexes参数时。此参数起作用的前提是有Indexes参数的存在。
访问控制
Order参数:后跟deny、allow
若allow在前,deny在后,则是先允许再拒绝,当允许与拒绝发生冲突时,拒绝优先
若deny在前,allow在后,则是先拒绝再允许,当拒绝与允许发生冲突时,允许优先
两者遵循规则为:冲突时,谁在后谁优
注:
Order参数如果添加在<Directory></Directory>之间,则是对<Directory>定义的目录生效;
Order参数如果添加在<Directory></Directory>之外,则是对serverName定义的虚拟主机网页生
Require参数:
Require参数如果添加在<Directory></Directory>之间,则是对<Directory>定义的目录生效;
Requirer参数如果添加在<Directory></Directory>之外,则是对serverName定义的虚拟主机网页生效。
granted:允许 Require all granted:允许所有人
denied :拒绝 Require all denied:拒绝所有人
IP: Require ip 172.16.30.130:只允许172.16.30.130可以访问。
目录身份验证
htpasswd:创建认证用户-c:创建一个用户
-m:默认htpassswd命令采用MD5算法对密码进行加密
配置文件参数:
认证名:authname
认证类型:authtype
认证密码文件路径:authserfile
指定认证密码文件中哪个用户可以访问该目录:require valid-user
Web站点的TLS验证
安装模块:yum -y install mod_ssl
配置文件:
/etc/httpd/conf.d/ssl.conf
第100行:SSLCertificateFile /etc/pki/tls/certs/localhost.crt。针对签名证书的配置以及签名证书的路径;
第107行:SSLCertificateKeyFile /etc/pki/tls/private/localhost.key。针对证书密钥的配置及证书密钥的存放路径;
第122行:#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt。针对证书签名授权信息的配置及其存放路径。
动态Web内容
安装模块:yum -y install mod_wsgi
配置文件:
/etc/httpd/conf.d/httpd-vhosts.con
附:webapp.wsgi文件内容
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return '<h1>Hello, web!</h1>'
附:其他web常见模块
限速模块:
mod_ratelimit
perl语言模块:
mod_perl
防止DDOS模块
mod_evasive
实验总结:
1 仔细点, 稍微不注意,
辅导人员:飞姐 ,
参考文案:飞姐出品的服务文档
版权声明:本文为博主原创文章,未经博主允许不得转载
辅导人员:飞姐 ,
参考文案:飞姐出品的服务文档
版权声明:本文为博主原创文章,未经博主允许不得转载