一、web服务器简介
web服务器一般指的是“网站服务器”,是某种驻留在因特网上的计算机程序,可以向请求终端提供服务,主要功能时存储、处理和传递网页给“客户”,传递内容一般是HTML文档、图像、样式表或脚本等,也可以放置网站文件以供浏览或下载。
同理www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处去。
web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在 /var/www/html 。
二:web基础知识总结
1.状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
-
1xx:指示信息 —— 表示请求已接收,继续处理
-
2xx:成功 —— 表示请求已被成功接收、理解、接受
-
3xx:重定向 —— 要完成请求必须进行更进一步的操作
-
4xx:客户端错误 —— 请求有语法错误或请求无法实现
-
5xx:服务器端错误 —— 服务器未能实现合法的请求
2.常见状态代码、状态描述的说明如下
-
200 OK:客户端请求成功
-
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
-
401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
-
403 Forbidden:服务器收到请求,但是拒绝提供服务
-
404 Not Found:请求资源不存在,举个例子:输入了错误的URL
-
500 Internal Server Error:服务器发生不可预期的错误
-
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
3.http协议请求的工作流程
(1)终端客户在web浏览器地址栏输入访问地址域名售卖
(2)web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址
(3)web浏览器将端口号(默认是80)从访问地址(URL)中解析出来
(4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接
(5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文
(6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。
(7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。
一次完整的HTTP请求过程
4.http
在web被访问时通常使用http ,http://为超文本传输协议
超文本传输协议提供软件:Apache nginx stgw jfe Tengin
5. Apache的启用
systemctl enable --now httpd ##开启服务并设定服务位开机启动
firewall-cmd --list-all ##查看火墙信息
firewall-cmd --permanent --add-service=http ##在火墙中永久开启http访问
firewall-cmd --permanent --add-service=https ##在火墙中永久开启https访问
firewall-cmd --reload ##刷新火墙使设定生效
6.Apache的基本信息
服务名称:httpd 配置文件:
/etc/httpd/conf/httpd.conf ##主配置文件
/etc/httpd/conf.d/*.conf ##子配置文件
默认发布目录: /var/www/html
默认发布文件: index.html 默认端口:(http是80,https是443)
用户: apache
日志: /etc/httpd/logs
三:虚拟主机配置实战
实验1:搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面
[root@localhost ~]# yum install httpd #安装httpd
[root@localhost html]# systemctl start httpd #开启httpd
[root@localhost ~]# cd /var/www/html/ #进入httpd的默认发布目录
[root@localhost html]# ls
index.html
[root@localhost html]# echo hello world > index.html
[root@localhost html]# cat index.html
hello world
[root@localhost html]# curl 172.25.254.25
实验2:建立两个基于ip地址访问的网站,要求如下
-
该网站ip地址的主机位为100,设置DocumentRoot为/www/ip/100,网页内容为:this is 100。
-
该网站ip地址主机位为200,设置DocumentRoot为/www/ip/200,网页内容为:this is 200。
准备工作:设置主机IP地址为172.25.254.100和172.25.254.200
配置文件配置虚拟主机标签
[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf
<virtualhost 172.25.254.100:80>
servername 172.25.254.100
documentroot /www/ip/100
</virtualhost>
<virtualhost 172.25.254.200:80>
servername 172.25.254.200 #访问IP地址
documentroot /www/ip/200 #访问html路径
</virtualhost>
<directory /www>
allowoverride none
require all granted
</directory>
[root@localhost conf]# curl 172.25.254.100
this is 100
[root@localhost conf]# curl 172.25.254.200
this is 200
实验3:建立两个基于不同端口访问的网站,要求如下:
-
建立一个使用web服务器默认端口的网站,设置DocumentRoo为/www/port/80,网页内容为:the port is 80。
-
建立一个使用10000端口的网站,设置DocumentRoot为/www/port/10000,网页内容为:the port is 10000。
[root@localhost ~]# mkdir -pv /www/ip/{80,10000}
[root@localhost ~]# echo the port is 80 > /www/ip/80/index.html
[root@localhost ~]# echo the port is 10000 > /www/ip/10000/index.html[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf
<virtualhost 172.25.254.100:80>
servername 172.25.254.100
documentroot /www/ip/80
</virtualhost>
listen 10000 #增加新的端口号
<virtualhost 172.25.254.100:10000>
servername 172.25.254.100
documentroot /www/ip/10000
</virtualhost>
<directory /www>
allowoverride none
require all granted
</directory>
检测监听端口号
[root@localhost 10000]# netstat -tuanlp |grep httpd
实验4:建立两个基于域名访问的网站,要求如下:
-
新建一个网站,域名为www.ceshi.com,设置DocumentRoot为/www/name,网页内容为this is test。
-
新建一个网站,域名为rhce.first.day,同时可通过ce.first.day访问,设置DocumentRoot为/www/ce,网页内容为:today is first day of class。
注意:域名和IP的关系
通过域名可以找到唯一对应的IP地址,一个IP可以有多个域名。一个IP地址可以找到唯一对应的域名。
操作系统缓存:那个主机缓存,就在那个主机下的文件地址缓存
Linux的缓存文件:vim /etc/hosts
一个IP可以拥有两个域名,提供两个网站信息
测试域名是否解析ping+域名
[root@localhost ~]#vim /etc/httpd/conf.d/vhosts.conf
[root@localhost ~]#systemctl restart httpd
[root@localhost ~]#mkdir /www/{haha,xixi} -pv
[root@localhost ~]#echo this is haha > /www/haha/index.html
[root@localhost ~]#echo this is xixi > /www/xixi/index.html
[root@localhost ~]#curl http://www.haha.com
[root@localhost ~]#curl http://www.xixi.com
多域名网站搭建成功