一.WEB服务的概念
WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求。当收到请求之后,它会生成相应的响应并将其返回至客户端。Web服务器通过HTTP协议与客户端通信,因此也被称为HTTP服务器。
http服务可以让我们通过域名或者ip去访问不同的信息
二.WEB服务原理
Web服务器的工作原理一般可分成如下4个步骤:
- 建立连接:客户机通过TCP/IP协议建立到服务器的TCP连接
- 请求过程:客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档
- 应答过程:服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果
- 关闭连接:客户机与服务器断开
三.配置HTTP服务
1.关闭防火墙,selinux
systemctl stop firewalld
setenforce 0
2.apache的安装,配置,启动
Apache 配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,以及基于域名的虚拟主机配置(实际的生产环境都是以源码包进行编译后安装的,因此我们也采取同样的方式来安装)
首先我们来到Apache的官方网站
找到你想要下载的版本,并选择合适格式的压缩包进行下载
把鼠标停在你想要下载的压缩包上,单击右键,选择复制链接,然后使用wget命令将压缩包下载到Linux系统中,如下图
下载完成后进行解压
tar -xzvf httpd-2.4.37.tar.gz
cd /httpd-2.4.37/
./configure --prefix=/opt/apache/##指定安装位置编译
make
make install
3.基于IP的虚拟主机配置
(1).先在同一个网络接口上绑定两个虚拟的ip
ifconfig ens33:1 192.168.62.137 up
ifconfig ens33:2 192.168.62.138 up
ifconfig
(2).然后在/etc/hosts文件中设置ip及名称
echo '192.168.62.137 test1' >> /etc/hosts
echo '192.168.62.138 test2' >> /etc/hosts
ping test1
ping test2
(3).在apache的安装目录下建立虚拟主机存放网页的根目录,并创建首页文件index.html
mkdir /opt/apache/www/test1 -p
mkdir /opt/apache/www/test2 -p
echo 'test1,hello_world' > /opt/apache/www/test1/index.html
echo 'test2,hello_world' > /opt/apache/www/test2/index.html
(4).修改主配置文件,在最后添加如下代码
vi /opt/apache/conf/httpd.conf
Listen 192.168.62.137:80
Listen 192.168.62.138:80
Include /opt/apache/vhost/*.conf #**(将下面vhost目录中的配置文件中也包含进来)**
(5).为了便于管理,我们在安装目录/opt/apache/下建立虚拟主机的目录vhost/
mkdir -p /opt/apache/vhost
然后在该目录下编辑虚拟主机的配置文件
vi /opt/apache/vhost/test1.conf
vi /opt/apache/vhost/test2.conf
(6).编辑完配置文件后,就可以启动我们的apache了(注意要先切换到/opt/apache/bin/目录下,该目录下放的是可执行文件,因此要切到该目录才能使用下面的命令)
(7).测试
在浏览器中输入我们配置好的虚拟主机的ip,发现并没有出现我们之前编辑的index.html的内容,排查后发现是防火墙没有关
关闭防火墙后再试
成功!
4.基于端口的虚拟主机配置
如果服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配置
(1).我们使用一个新的虚拟ip来进行测试
ifconfig ens33:3 192.168.62.139 up
(2).然后在/etc/hosts文件中设置ip及名称
echo '192.168.62.139 test3' >> /etc/hosts
ping test3
(3).在apache的安装目录下建立虚拟主机存放网页的根目录,并创建首页文件index.html
mkdir /opt/apache/www/test3/8080 -p
mkdir /opt/apache/www/test3/8081 -p
echo '8080,hello_world' > /opt/apache/www/test3/8080/index.html
echo '8081,hello_world' > /opt/apache/www/test3/8081/index.html
(4).修改主配置文件,在最后添加如下代码
Listen 192.168.62.139:8080
Listen 192.168.62.139:8081
Include /opt/apache/vhost/*.conf
(5).在vhost/中编辑虚拟主机的配置文件
vi /opt/apache/vhost/test3_8080.conf
vi /opt/apache/vhost/test3_8081.conf
(6).启动apache并测试
cd /opt/apache/bin/
./apachectl -t
./apachectl start
成功!
5.基于域名的虚拟主机配置
(1).使用一个新的虚拟ip来进行测试并在/etc/hosts文件中设置ip及名称
ifconfig ens33:4 192.168.62.140 up
vi /etc/hosts
echo '192.168.62.140 www.1314.com' >> /etc/hosts
echo '192.168.62.140 www.1324.com' >> /etc/hosts
ping www.1314.com
ping www.1324.com
(2).编辑主配置文件,在末尾添加如下内容
vi /opt/apache/conf/httpd.conf
(3).在apache的安装目录下建立虚拟主机存放网页的根目录,并创建首页文件index.html
mkdir www/1341.com -p
mkdir www/1342.com -p
echo '1314 i love you' > ../apache/www/1314.com/index.html
echo '1324 i love you,too' > ../apache/www/1324.com/index.html
(4).在vhost/中编辑虚拟主机的配置文件
vi /opt/apache/vhost/1314.com.conf
vi /opt/apache/vhost/1324.com.conf
(5).启动apache并测试
cd /opt/apache/bin/
./apachectl -t
./apachectl start
测试成功!
四.总结
在配置过程中会涉及到很多ip和文件,目录的路径,在做的时候一定要细心,有一个路径写错就会报错
可以使用export PATH=/opt/apache/bin:$PATH
将apache下的二进制可执行文件导入环境变量,这样就不用每次都要先切换到bin/下才能进行操作