第四章 Web服务器(1)

1.www简介
        

        Web网络服务也叫WWW(World Wide Web 全球信息广播)万维网服务,一般是指能够让用户通过浏览器访问到互联网中文档等资源的服务

        Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP (超文本传输协议)HTTPS(安全超文本传输协议)把请求的内容传送给用户,如图:

第四章 Web服务器(1)_第1张图片

1.1.常见Web服务程序介绍
        

        Windows系统中默认Web服务程序是IIS (Internet Information Services),这是一款图形化的网站管理工具,IIS程序不光能提供Web网站服务,还能够提供FTP、NMTP、SMTP等服务功能,但只能在Windows系统中使用

第四章 Web服务器(1)_第2张图片

        2004 年10 月4 日,为俄罗斯知名门户站点而开发的 Web 服务程序 Nginx 横空出世。Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx最被认可的还当是低系统资源占用、内存少且并发能力强,因此得到了国内诸如新浪、网易、腾讯等门户站的青睐

第四章 Web服务器(1)_第3张图片

       Apache--取自美国印第安人土著语Apache,寓意着拥有高超的作战策略和无穷的耐性,由于Apache--其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。目前拥有很高的Web服务软件市场占用率,全球使用最多的Web服务软件,开源、跨平台 (可运行于Unix,linux,windows

第四章 Web服务器(1)_第4张图片

        Tomcat一一属于轻量级的Web服务软件,一般用于开发和调试JSP代码,通常认为Tomcat是Apache的扩展程序

第四章 Web服务器(1)_第5张图片

1.2.服务器主机


        网站是由域名、网页源程序和主机空间组成的,其中主机空间则是用于存放网页源代码并能够将网页内容展示给用户,虽然本小节与Apache服务没有直接关系,但如果您想要在互联网中搭建网站并被顺利访问,主机空间一定不能选错

第四章 Web服务器(1)_第6张图片

        虚拟主机:在一台服务器中分出一定的磁盘空间供用户放置网站、存放数据等,仅提供基础的网站访问、数据存放与传输流量功能,能够极大的降低用户费用,也几乎不需要管理员维护除网站数据以外的服务,适合小型网站
        VPS(Virtual Private Server):在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多个“主机”,每个主机都有独立的IP地址、操作系统,实现不同VPS之间磁盘空间、内存、CPU资源、进程与系统配置间的完全隔离,管理员可自由使用分配到的主机中的所有资源,所以需要有一定的维护系统的能力,适合小型网站

        云服务器(ECS):是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务,其使用起来与VPS几乎一样,但差别是云服务器建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),大大的提升了安全稳定性,另外还具备了灵活性与扩展性,用户只需按使用量付费的即可,适合大中小型网站。
        独立服务器:这台服务器仅提供给您使用,详细来讲又可以区分为租用方式与托管方式

                租用方式:用户只需将硬件配置要求告知IDC服务商,服务器硬件设备由机房负责维护,运维管理员一般需要自行安装相应的软件并部署网站服务,租期可以为月、季、年,减轻了用户初期对硬件设备的投入,适合大中型网站。

                托管方式:用户需要自行购置服务器后交给IDC服务供应商的机房进行管理(缴纳管理服务费用),用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站
                另外有必要提醒,选择主机空间供应商时请一定要注意看口碑,综合分析再决定购买,某些供应商会有限制功能、强制添加广告、隐藏扣费或强制扣费等恶劣行为,一定一定不要上当!

1.3.主要数据


        服务器所提供的最主要数据是超文本标记语言 (Hyper Text Markup Language,HTML)、多媒体文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓的标记来规范所要显示的数据格式

1.4.浏览器
 

        客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上
        那么著名的浏览器就有内建在Windows操作系统内的IE浏览器 (淘汰)和Microsoft Edge,还有Firefox浏览器和Google的chrome浏览器

1.5网址及HTTP简介

        web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在var/www/htm

           浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的


1.5.1.URL


        Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
        网址格式:<协议>://<主机或主机名>[:port]/<目录资源,路径>**
        协议: : http、https、ftp等
        主机地址或者主机名: 主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了
        端口号 (port): http为80,https为443 (IANA: 互联网数字分配机构)。

                    0-1023:永久地分配给固定的应用程序使用
                    1024-41951:注册端口,但要求不是特别严格,分配给程序注册为某应用使用                                  41952-60000:客户端程序随机使用的端口,动态端口,或私有端口

1.5.2.http请求方法:


        在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器端需要执行哪些具体的动作,这些动作包括: 获取指定web页面、提交内容到服务器、删除服务器上资源文件等。

序号 方法 描还
1 GET 请求指定的页面信息,并返回实体主体,
2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头        
3 POST         向指定资源提交数据进行处理请求( 例提交表单或者上传文件 ),数据被包全在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容,
5 DELETE 请求服务器删除指定的页面。
6 CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
7 OPTIONS 允许客户精查者服务器的性能
8 TRACE 回显服务器收到的请求,主要用于测试或诊断

状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

        1xx: 指示信息一一 表示请求已接收,继续处理

        2xx:成功一一表示请求已被成功接收、理解、接
        3xx:重定向一一要完成请求必须进行更进一步的操作

        4xx:客户端错误一一请求有语法错误或请求无法实现
        5xx:服务器端错误一一服务器未能实现合法的请求

常见状态代码、状态描述的说明如下:

        200 0K:客户端请求成功
        400 Bad Request:客户端请求有语法错误,不能被服务器所理解

        401Unauthorized: 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
        403 Forbidden: 服务器收到请求,但是拒绝提供服务
        404 Not Found: 请求资源不存在,举个例子: 输入了错误的URL

        500Internal Server Error: 服务器发生不可预期的错误

        503 Server Unavailable: 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

1.5.3.HTTP协议请求的工作流程


        终端客户在web浏览器地址栏输入访问地址http://www.ceshi.com:80/index.html

        web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址

        web浏览器将端口号 (默认是80) 从访问地址 (URL) 中解析出来

         web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接

        建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文

        web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文

        web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上

1.6.www服务器的类型

1.6.1.静态网站

        仅提供用户浏览的单向静态网页单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,可以浏览网站,但是无法数据上传

1.6.2.动态网站

        该站可以让服务器与用户互动,'常见的例如留言板,博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动的行为。常见的例如: PHP网页程序语言,配合数据库系统来进行数据的读、写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变

        另外一种交互式的动态网页主要是在客户端实现。服务端将可执行的程序代码 (avaScript)传送给客户端,客户端的浏览器如果提供JavaScript的功能,那么该程序就可以在客户端的计算机上面工作了;另外一种可在客户端执行的就是flash动画格式,在这种动画格式内还可以进行程序设计


搭建动态网站的需求: LAMP (Linux+Apache+MySQL+PHP)

        Apache主要提供www的服务器平台

        MySQL: 传统的文件读取是很麻烦的,如果只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若多个用户同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。
        PHP:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行

2.快速安装Apache

2.1 安装Apaxhe:

安装Apaxhe:

[root@node2 ~]# yum install httpd -y

第四章 Web服务器(1)_第7张图片

利用getenforce查看SELinux状态:

若正在执行则用命令 

[root@node2 ~]# setenforce 0                将其关闭

第四章 Web服务器(1)_第8张图片

关闭防火墙:

[fox@bogon ~]$ systemctl stop firewalld         #  临时关闭防火墙(重启设备后将再次自行启动)
[fox@bogon ~]$ systemctl disable firewalld      # 取消开机启动(重启设备后将不会自行启动)

[fox@bogon ~]$ systemctl stop firewalld         #  临时关闭防火墙(重启设备后将再次自行启动)
[fox@bogon ~]$ systemctl disable firewalld      # 取消开机启动(重启设备后将不会自行启动)
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

启动Apache:

[root@node2 ~]# systemctl start httpd            # 启动
[root@node2 ~]# systemctl enable httpd           # 开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@node2 ~]# systemctl status httpd           # 查看状态
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: d>
     Active: active (running) since Mon 2023-11-06 13:23:00 CST; 1min 59s ago
       Docs: man:httpd.service(8)
   Main PID: 2428 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes serve>
      Tasks: 213 (limit: 11984)
     Memory: 41.1M
        CPU: 460ms
     CGroup: /system.slice/httpd.service
             ├─2428 /usr/sbin/httpd -DFOREGROUND
             ├─2429 /usr/sbin/httpd -DFOREGROUND
             ├─2430 /usr/sbin/httpd -DFOREGROUND
             ├─2431 /usr/sbin/httpd -DFOREGROUND
             └─2432 /usr/sbin/httpd -DFOREGROUND

11月 06 13:22:57 node2 systemd[1]: Starting The Apache HTTP Server...
11月 06 13:22:59 node2 httpd[2428]: AH00558: httpd: Could not reliably determine the >
11月 06 13:23:00 node2 httpd[2428]: Server configured, listening on: port 80
11月 06 13:23:00 node2 systemd[1]: Started The Apache HTTP Server.

2.2 httpd所需目录

主配置文件所在目录:[root@node2 ~]# cd /etc/httpd/

主配置文件:[root@node2 httpd]# vim /etc/httpd/conf/httpd.conf 

存储默认网页的目录:[root@node2 httpd]# cd /var/www/html/

网站流量的日志以及错误日志文件: [root@node2 ~]# cd /var/log/httpd/

        [root@node2 httpd]# vim access_log 流量的日志

        [root@node2 httpd]#  vim error_log   错误日志

第四章 Web服务器(1)_第9张图片

2.3主配置文件:

打开方式:[root@node2 httpd]# vim /etc/httpd/conf/httpd.conf 

全局参数:

第四章 Web服务器(1)_第10张图片

ServerRoot "/etc/httpd":服务目录

Listen 80:监听端口号

Include conf.modules.d/*.conf: 加载模块储存位置
User apache                                                 
Group apache:Apache所用的工作组及账户
ServerAdmin root@localhost:管理员的邮箱
DocumentRoot "/var/www/html": 网页的启动目录

局部参数:<>   

目录访问权限:

第四章 Web服务器(1)_第11张图片



    AllowOverride none        # 权限是否可以被覆盖改写 
    Require all denied        # 是否允许访问该目录
       

此处含义为不允许远程连接访问及改写本地更目录

用户访问网页的权限:

该局部参数一般与网页的启动目录一同出现

第四章 Web服务器(1)_第12张图片


    AllowOverride None       # 不允许权限被修改
    # Allow open access:
    Require all granted      # 允许访问该网页

2.4网站的搭建

2.4.1 快速搭建一个网站

[root@node2 httpd]# echo "welcome ti www.openlab.com"1 > /var/www/html/index.html\

                # 将字符串写入网页/index.html\ 
[root@node2 httpd]# ls /var/www/html/
index.html
[root@node2 httpd]# systemctl  restart httpd  重启服务

此时我们可以在VMwork中调用浏览器然后访问

        [root@node2 ~]# firefox

        输入网址:127.0.0.1或者192.168.17.132第四章 Web服务器(1)_第13张图片

第四章 Web服务器(1)_第14张图片

注意:我们还可以在自己的win10浏览器上调用输入:192.168.17.132

也可以通过curl命令来验证网站是否搭建成功。

格式:        curl          IP地址           

作用:将网址下载到本机

2.4.2更换网页目录

第一步:准备工作

[root@node2 ~]# systemctl stop  firewalld              关闭防火墙          
[root@node2 ~]# systemctl  disable firewalld
[root@node2 ~]# setenforce 0                                关闭SELinux
[root@node2 ~]# yum install httpd -y                      安装软件
[root@node2 ~]# systemctl status httpd                  启动软件
[root@node2 ~]# systemctl enable httpd                 开机启动

第二步: 新建网页存储目录/web1,使用xftp将网页数据上传到/web1

[root@server ~]# mkdir /web1
[root@server ~]# cd /web1
[root@server web1]# Is

css        dingban.mp4         img        index.htm         js         temp第三步:修改主配置文件                 

DocumentRoot    "/webl"                    # 第124行修改为真实的网页存储目录
                        # 第129行修改网页存储目录的访问权限

        Allowoverride None
        # A11ow open access:
        Require al] granted

第四步:重启服务器并测试
[root@server ~]# systemctl  restart httpd

windows端打开浏览器输入服务器地址

2.4.3 内网穿透

搭建网站使用花生壳进行内网穿透实现公网访问

第一步:准备工作

[root@node2 ~]# systemctl stop  firewalld              关闭防火墙          
[root@node2 ~]# systemctl  disable firewalld
[root@node2 ~]# setenforce 0                                关闭SELinux
[root@node2 ~]# yum install httpd -y                      安装软件
[root@node2 ~]# systemctl status httpd                  启动软件
[root@node2 ~]# systemctl enable httpd                 开机启动

第二步:搭建网站

        # 将网页数据上传到/zy下:
root@server ~]# vim /etc/httpd/conf/httpd.conf                # 修改124及129行数据

DocumentRoot"/zy"


root@server ~]# systemct] restart httpd         # 重启服务

第三步:测试

浏览器中输入IP进行测试

第四步:使用花生壳进行内网穿透
        # 注册,登录,完成身份证的实名认证

进入贝瑞花生壳官网>注册(个人注册,使用手机号)

第四章 Web服务器(1)_第15张图片

内网穿透第一步福创建内网映射,

第四章 Web服务器(1)_第16张图片

立即创建:

第四章 Web服务器(1)_第17张图片

添加映射: 

第四章 Web服务器(1)_第18张图片

 具体信息如下:

第四章 Web服务器(1)_第19张图片

如下:

        #应用名称: 自定
        # 映射类型: https
        # 外网域名: 系统指定,不能更改
        # 外网端口: 443,默认
        # 内网主机:本机linux服务的IP地址
        #内网端口: 本地linux端的http端口,默认80

创建成功后显示如下:

在官网复制Linux版的花生壳,复制链接并安装:

第四章 Web服务器(1)_第20张图片

第四章 Web服务器(1)_第21张图片

利用链接下载安装包:

安装:

接下来按照提示栏经行操作:

第四章 Web服务器(1)_第22张图片

启动:[root@server ~]# phddns   start

                phtunnel service start success !       # 表示已启动

激活:利用提示的链接进入网站激活

第四章 Web服务器(1)_第23张图片

第四章 Web服务器(1)_第24张图片

第四章 Web服务器(1)_第25张图片

激活成功时:

第四章 Web服务器(1)_第26张图片

此时就可以使用使用图片中的链接访问所搭建的网站。

注:此时手机端也可以访问。

2.4.4  设置用户密码访问


        搭建一个个人用户主页功能网站,实现通过身份验证功能来访问数据

        如果想在系统中为每一位用户建立一个独立的网站,通常使用基于虚拟主机的功能来创建部署多个网站,但这个工作会让管理者苦不堪言,尤其是用户数据量很大的情况时,而且用户自行管理网站时,还会碰到权限限制,需要为此做很多额外的工作,其实,httpd服务程序提供的个人主页功能可以完全胜任此工作,该功能可以让系统内所有用户在自己的家目录中管理个人网站,且访问也非常容易

第一步:准备工作

        [root@node2 ~]# systemctl stop  firewalld              关闭防火墙          
        [root@node2 ~]# systemctl  disable firewalld
        [root@node2 ~]# setenforce 0                                关闭SELinux
        [root@node2 ~]# yum install httpd -y                      安装软件
        [root@node2 ~]# systemctl status httpd                  启动软件
        [root@node2 ~]# systemctl enable httpd                 开机启动

第二步:编辑httpd目录中的用户主页配置文件(不是httpd.conf文件)

        进入文件:[root@node2 ~]# vim /etc/httpd/conf.d/userdir.conf 

        将 UserDir disabled注释:
第四章 Web服务器(1)_第27张图片

        将UserDir public_html释放:

第四章 Web服务器(1)_第28张图片

                代表:启动网站存储数据的默认目录,路径: /home/账户名/public_htm]

第三步:新建账户设置权限问题。

[root@server ~]# useradd  andy

[root@server ~]# passwd  andy

        更改用户 andy 的密码

        新的密码                # 密码: 123456

        无效的密码:

        密码少于 8 个字符

        重新输入新的密码:
        passwd:所有的身份验证令牌已经成功更新。

[root@server ~]# useradd jenny

[root@server ~]# passwd jenny

        更改用户 jenny 的密码

        新的密码:

        无效的密码:

        密码少于 8 个字符

        重新输入新的密码:
        密码: 654321
        passwd:所有的身份验证令牌已经成功更新

切换到andv账户,设置存储网页目录即权限

[root@node2 ~]# su andy
[andy@node2 root]$ cd /home/andy/
[andy@node2 ~]$ ls
[andy@node2 ~]$ mkdir public_html
[andy@node2 ~]$ cd public_html/
[andy@node2 public_html]$ 

使用xftp将sxhkt网页数据上传到/home/andy/public_htm1目录中

[andy@server public_htmI]$ cd ~

[andy@server ~]$ chmod-Rf 755/home/andy

[andy@server ~]$ ll
        总用量 0
        drwxr-xr-x         7        andy         andy         100         8月 22 11:25         public_html

# 切换到jenny账户,设置存储网页目录及权限

[andy@server ~]$ su jenny

        密码:

[jenny@server andy]$ cd ~

[jenny@server ~]$ pwd

        /home/jenny

[jenny@server ~]$ mkdir public_html

[jenny@server ~]$ cd public_html/

[jenny@server public_html]$ cd
[jenny@server ~]$ chmod -Rf 755 /home/jenny
[jenny@server ~]$ 11

        总用量 0
        drwxr-xr-x         6        jenny         jenny         70         8月22 11:29         public_html

# 切换到root账户

[jenny@server ~]$ su root

密码:
[root@server jenny]# cd ~

[root@server ~]# pwd

/root

第四步:重启服务并操作

[root@server ~]# systemctl restart httpd

        测试:

        在windows端浏览器地址栏中,输入:

                192.168.48.130/~andy

                192.168.48.130/~jennyy

第五步:增加密码访问控制:

[root@server ~]# htpasswd         -c                                 /etc/httpd/passwd         andy

                                           创建存储密码的文件            存储密码的文件(密文)  用户名

New password:

Re-type new password:
Adding password for user andy
# 分析:
        # htpasswd: 生成密码数据的命令

        # -C: 表示第一次生成,会创建存储密码加密密文的存储文件,之后创建时不能增减-C参数,否则会将存储密码密文的文件会覆盖

        ​# ​​​​​​andy需要验证密码登录的账户

[root@server ~]# htpasswd /etc/httpd/passwa jenny

New password:                                #v密码: 654321
Re-type new password:

Adding password for user andy

第六步: 编辑个人主页配置文件,设置访问控制策略

[root@server ~]# vim /etc/httpd/conf.d/userdir.conf

第四章 Web服务器(1)_第29张图片# 定位最后一行输入以下内容:

            # 设置andy账户目录的区域配置

        authuserfile        "/etc/httpd/passwd" # 设置验证密码的存储文件位置

        authname           "My privately        #登录时的提示信息,可能不显示

        authtype           basic                # 加密模式
        require   user         andy

                                    # 需要验证密码的账户名                                  

          

        authuserfile          "/etc/httpd/passwd"      

        authname              "My privately                

        authtype               basic                        
        require   user         jenny

 

第七步:从其服务并测试
[root@server ~]# systemctl restart httpd
# 在windows端浏览器地址栏中,输入以下 
        # 192.168.48.130/~andy
        # 192.168.48.130/~jenny

2.4.5 通过主配置文件实现密码验证访问网站

        通过主配置文件实现密码验证访问网站

第一步:准备工作

        [root@node2 ~]# systemctl stop  firewalld              关闭防火墙          
        [root@node2 ~]# systemctl  disable firewalld 
        [root@node2 ~]# setenforce 0                                关闭SELinux
        [root@node2 ~]# yum install httpd -y                      安装软件
        [root@node2 ~]# systemctl status httpd                  启动软件
        [root@node2 ~]# systemctl enable httpd                 开机启动

第二步:新建账户设置密码及权限

[root@server ~]# useradd t1

[root@server ~]# passwd t1
新的密码:                                                # 密码123456
[root@server ~]# useradd t2

[root@server ~]# passwd t2
新的密码:                                                # 密码654321

第三步: 搭建网站,设置密码访问控制

        #创捷储存网站数据的目录

[root@node2 ~]# mkdir -p /www/zy               

        # 将字符串写入网页/www/zy/index.html\ 

[root@node2 ~]# cd /www/zy/
[root@node2 zy]# enco "hello this is 666"  > index.html

        # 设置登陆密码。

[root@node2 zy]# htpasswd  -c /etc/httpd/passwdzy t1                #  创捷储存登陆网站密码的文件
New password:                                                                              # 密码123456
Re-type new password: 
Adding password for user t1
[root@node2 zy]# htpasswd  /etc/httpd/passwdzy t2
New password:                                                                               # 密码654321
Re-type new password: 
Adding password for user t2

第四步: 编辑个人主页配置文件,设置访问控制策略

[root@server ~]# vim /etc/httpd/conf/httpd.conf

DocumentRoot        "/www/zy"                     # 定位124行进行修改
                      # 定位129行修改

                              # 定位135进行修改
        authuserfile    "/etc/httpd/passwdzy"     # 登陆时密码存储的位置
        authname        "My     privately"        # 给出登陆时的提示信息
        authtype        "basic"                   # 写出加密模式
        require         user            t1  t2    # 有多个账户需要验证密码,则通过空格隔开


# 保存并退出

第四步:重启Apaxhe进行测试

此时输入网址后会直接弹出登陆选项

3.虚拟主机功能

3.1.概述

            如果每台运行 Linux 系统的服务器上只能运行一个网站,那么人气低、流量小的草根站长就要被迫承担着高昂的服务器租赁费用了,这显然也会造成硬件资源的浪费。在虚拟专用服务器(Virtual Private Sever,VPS) 与云计算技术诞生以前,IDC 服务供应商为了能够更充分地利用服务器资源,同时也为了降低购买门槛,于是纷纷启用了虚拟主机功能

        利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。但是该技术无法实现目前云主机技术的硬件资源隔离
        Apache 的虚拟主机功能是服务器基于用户请求的不同IP 地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术,也就是说用户请求的资源不同,最终获取到的网页内容也各不相同


3.2基于IP 地址的虚拟主机

3.2.1.原理  

              如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,当用户请求的IP地址不同,则会访问到不同网页,且每个网站都有一个独立的IP地址。 (常用)

        注意:主机必须有多个IP地址

3.2.2实验6

        增加多个IP地址,实现基于不同的IP地址虚拟主机功能

第一步:准备工作

        [root@node2 ~]# systemctl stop  firewalld              关闭防火墙          
        [root@node2 ~]# systemctl  disable firewalld 
        [root@node2 ~]# setenforce 0                                关闭SELinux
        [root@node2 ~]# yum install httpd -y                      安装软件
        [root@node2 ~]# systemctl status httpd                  启动软件
        [root@node2 ~]# systemctl enable httpd                 开机启动

给为网卡怎加俩个地址

[root@node2 ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.17.150/24
[root@node2 ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.17.151/24
[root@node2 ~]# nmcli connection up ens160   
    # 配置完之后一定要启动
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
第四章 Web服务器(1)_第30张图片

第二步:新建俩个存储网页的目录,写入来个网页文件

[root@node2 ~]# mkdir -p /www/ip150
[root@node2 ~]# mkdir -p /www/ip151
[root@node2 ~]# echo "ip150" > /www/ip150/index.html
[root@node2 ~]# echo "ip151" > /www/ip151/index.html

第四章 Web服务器(1)_第31张图片

第三步:修改配置文件,建立基于IP地址的虚拟主机

第四章 Web服务器(1)_第32张图片


        Documentroot "/www/ip150"
        
                allowoverride   none                # 不允许访问方来修改当前目录的权限
                require all     granted               # 允许所有用户访问 
        

        servername      192.168.17.150      # 域名必须设置,此时暂无域名因此写自身IP



        Documentroot "/www/ip151"
        
                allowoverride   none
                require all     granted
        
        servername      192.168.17.151

第四步:重启服务并测试

[root@server ~]# systemctl restart httpd

[root@server ~]# curl 192.168.48.150ip150

[root@server ~]# cur1192.168.48.151ip151

3.3.基于端口号的虚拟主机

3.3.1.原理:

基于端口号的虚拟主机功能,可以让用户通过一个IP地址的不同端
口号来访问不同的网站

你可能感兴趣的:(Linux,服务器,运维)