Linux之web服务器

news2024/11/25 22:34:42

目录

www简介

常见Web服务程序介绍

服务器主机

主要数据

浏览器

网址及HTTP简介

URL

http请求方法

状态码

MIME(Multipurpose Internet Mail Extension)

www服务器的类型

静态网站

动态网站

Apache服务的搭建

Apache的安装

准备工作

httpd所需文件目录

主配置文件 

案例

       案例1 ---  快速搭建网站

        案例2 --- 替换网页目录

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

案例4 ---  网页验证密码登录


www简介

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

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

image-20221016093613033

常见Web服务程序介绍

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

image-20221016093928162

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

image-20221016094123540

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

image-20221016094238292

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

服务器主机

        网站 --- 是由域名网页源程序主机空间组成的,其中主机空间则是用于存放网页源代码并能够将网页内容展示给用户,如果您想要在互联网中搭建网站并被顺利访问,主机空间一定不能选错

image-20221016094514122

         虚拟主机 --- 在一台服务器中分出一定的磁盘空间供用户放置网站、存放数据等,仅提供基础的网站访问、数据存放与传输流量功能,能够极大的降低用户费用,也几乎不需要管理员维护除网站数据以外的服务,适合小型网站

        VPS(Virtual Private Server) --- 在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多个“主机”,每个主机都有独立的IP地址、操作系统,实现不同VPS之间磁盘空间、内存、CPU资源、进程与系统配置间的完全隔离,管理员可自由使用分配到的主机中的所有资源,所以需要有一定的维护系统的能力,适合小型网站

        云服务器(ECS) --- 是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务,其使用起来与VPS几乎一样,但差别是云服务器建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),大大的提升了安全稳定性,另外还具备了灵活性与扩展性,用户只需按使用量付费的即可,适合大中小型网站 ​​​

        独立服务器 --- 这台服务器仅提供给您使用,详细来讲又可以区分为租用方式与托管方式

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

                托管方式 --- 用户需要自行购置服务器后交给IDC服务供应商的机房进行管理(缴纳管理服务费用),用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站

主要数据

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

浏览器

        客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上

网址及HTTP简介

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

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

URL

        Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址

        网址格式 --- <协议>://<主机或主机名>[:port]/<目录资源,路径>**

        协议 --- http、https、ftp等

        主机地址或者主机名 --- 主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了

        端口号(port) --- http为80,https为443 (IANA:互联网数字分配机构)

                0-1023 --- 永久地分配给固定的应用程序使用

                1024-41951 --- 注册端口,但要求不是特别严格,分配给程序注册为某应用使用

                41952-60000 --- 客户端程序随机使用的端口,动态端口,或私有端口

http请求方法

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

状态码

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

        2xx:成功 --- 表示请求已被成功接收、理解、接受

        3xx:重定向 --- 要完成请求必须进行更进一步的操作

        4xx:客户端错误 --- 请求有语法错误或请求无法实现

        5xx:服务器端错误 --- 服务器未能实现合法的请求

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

        200 OK --- 客户端请求成功

        400 Bad Request --- 客户端请求有语法错误,不能被服务器所理解

        401 Unauthorized --- 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用

        403 Forbidden --- 服务器收到请求,但是拒绝提供服务

        404 Not Found --- 请求资源不存在,举个例子:输入了错误的URL

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

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

MIME(Multipurpose Internet Mail Extension)

        MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)最初是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。后来http也支持了这个功能,用它来描述数据并标记不同的数据内容类型

        当web服务器响应http请求时,会为每一个http对象数据加一个MIME类型。当web浏览器获取到服务器返回的对象时,会去查看相关的MIME类型,并进行相应的处理

MIME类型

文件类型

text/html

html、htm、shtml文本类型

text/css

css文本类型

text/xml

xml文本类型

image/gif

gif图像类型

image/jpeg

jpeg、jpg图像类型

application/javascript

js文本类型

text/plain

txt文本类型

application/json

json文本类型

video/mp4

mp4视频类型

video/quicktime

mov视频类型

video/x-flv

flv视频类型

video/x- 

wmv视频类型

video/x-msvideo

avi视频类型

www服务器的类型

静态网站

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

动态网站

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

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

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

Apache服务的搭建

Apache的安装

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

准备工作

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl start httpd # 启动httpd

[root@localhost ~]# systemctl enable httpd # 设置开机启动

[root@localhost ~]# setenforce 0 #暂时关闭selinux

[root@localhost ~]# systemctl status httpd # 查看httpd状态,q键退出查看

httpd所需文件目录

服务目录:/etc/httpd
主配置文件:/etc/httpd/conf/httpd.conf
网页数据目录:/var/www/html
网站访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log  

主配置文件 

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
34 ServerRoot "/etc/httpd"   # 服务目录
46 #Listen 12.34.56.78:80   # 设置监听的IP地址及端口
47 Listen 80    # 默认开启监听端口为80
61 Include conf.modules.d/*.conf  # 加载额外配置文件
71 User apache  # 运行服务的用户
72 Group apache # 运行服务的工作组
91 ServerAdmin root@localhost  # 管理者的邮箱
100 #ServerName www.example.com:80  # 设置域名及端口号,必须要有域名解析

107 <Directory />  # <> 表示起始标志,</>  表示结束标志
# 设置目录的权限,,当浏览器中输入URL地址后,若访问服务器某目录下的某个文件,必须要设置其权限,保证数据的安全性
# AllowOverride :是否允许权限覆盖,如果有额外的权限文件,是否允许额外文件来对当前Directory进行权限覆写
108     AllowOverride none   # 不允许覆盖 
109     Require all denied  # 禁止所有来源访问文件或目录
        # Require all granted   允许所有来源访问
110 </Directory>



124 DocumentRoot "/var/www/html"  # 重点,网页存放的默认目录
129 <Directory "/var/www">  # 设置网页目录的权限,与DocumentRoot搭配使用
130     AllowOverride None
131     # Allow open access:
132     Require all granted
133 </Directory>

案例

       案例1 ---  快速搭建网站

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

[root@localhost ~]# echo "welcome to www.baidu.com" > /var/www/html/index.html # 写入网页数据

[root@localhost ~]# systemctl restart httpd

# 打开虚拟机的火狐浏览器输入127.0.0.1测试

# 或者推过curl命令查看网站的网页数据,验证网站是否能访问
[root@localhost ~]# curl 127.0.0.1

        案例2 --- 替换网页目录

新建网页存储目录

[root@localhost /]# mkdir /web1

创建index.html文件

[root@localhost web1]# vim index.html
Welcome to Apache
编辑上述内容

修改配置文件

[root@localhost web1]# vim /etc/httpd/conf/httpd.conf
# 定位第124行。修改如下:
DocumentRoot "/web1"

# 定位第129行,修改如下:
<Directory "/web1">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

重启服务

[root@localhost web1]# systemctl restart httpd

测试

注意:

        要关闭selinux 

[root@localhost conf.d]# setenforce 0

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

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

 准备工作

# 关闭selinux和firewalld软件

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

[root@localhost ~]# systemctl  start  httpd

[root@localhost ~]# systemctl  enable   httpd

编辑httpd目录中 == 用户主页配置 == 文件(不是httpd.conf

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

    #UserDir disabled  # 增加注释#,默认为关闭状态,增加注释表示开启功能
   	UserDir public_html  # 取消注释#,即开启用户家目录功能,表示网站数据存储在/home/普通账户名/public_html中

创建2个用户

[root@localhost ~]# useradd t1
[root@localhost ~]# passwd t1
更改用户 t1 的密码 。
新的密码:              # 密码:123456
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd t2
[root@localhost ~]# passwd t2
更改用户 t2 的密码 。
新的密码:            # 密码:654321
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。

切换到普通用户 ,进入家目录,新建存储网站数据的public_html,并设置权限

[root@localhost /]# su t1
[t1@localhost /]$ cd ~    # 进入t1的家目录
[t1@localhost ~]$ pwd
/home/t1
[t1@localhost ~]$ mkdir public_html    # 新建存储网站数据的目录
[t1@localhost ~]$ ls
public_html
[t1@localhost ~]$ cd public_html/
[t1@localhost public_html]$ vim index.html #创建文件并并写数据
This is t1

[t1@localhost ~]$ chmod -Rf 755 /home/t1    # 设置权限
[t1@localhost ~]$ ll 

[t1@localhost ~]$ su t2
Password: 
[t2@localhost t1]$ cd ~
[t2@localhost ~]$ mkdir public_html
[t2@localhost ~]$ cd public_html/
[t2@localhost public_html]$ vim index.html
[t2@localhost public_html]$ cat index.html
This is t2
[t2@localhost public_html]$ chmod -Rf 755 /home/t2
[t2@localhost public_html]$ cd ..
[t2@localhost ~]$ ll
total 0
drwxr-xr-x. 2 t2 t2 24 Aug 30 19:11 public_html
[t2@localhost ~]$ 

[t2@localhost ~]$ su root #切换回管理员
Password: 
[root@localhost t2]# cd ~

重启服务

[root@localhost ~]# systemctl restart httpd

未报错,则重启成功

测试

192.168.149.128/~t1
192.168.149.128/~t2

案例4 ---  网页验证密码登录

准备工作

# 恢复之前配置文件中的配置

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

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

# 关闭selinux和firewalld软件

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

搭建网站,设置密码访问控制

[root@localhost ~]# cd /
[root@localhost /]# mkdir -p /www/zy
[root@localhost /]# htpasswd -c /etc/httpd/paszy t1
New password: 
Re-type new password:     # 123456
Adding password for user t1
[root@localhost /]# htpasswd  /etc/httpd/paszy t2     不能加-c
New password: 
Re-type new password:     # 654321
Adding password for user t2
[root@localhost /]# 

编辑文件配置

[root@localhost /]# vim /etc/httpd/conf/httpd.conf #编辑主配置文件
DocumentRoot "/www/zy"   # 设置网页启动目录

<Directory "/www/zy">    # 设置网页启动目录的访问权限
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory  "/www/zy">  
        authuserfile  /etc/httpd/pszy
        authname  "My  privately website"
        authtype  basic
        require   user  t1 t2
</Directory>

重启服务

[root@localhost /]# systemctl restart httpd

测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/953207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Flutter】Flutter 使用 collection 优化集合操作

【Flutter】Flutter 使用 collection 优化集合操作 文章目录 一、前言二、安装和基本使用三、算法介绍四、如何定义相等性五、Iterable Zip 的使用六、优先队列的实现和应用七、包装器的使用八、完整示例九、总结 一、前言 大家好&#xff01;我是小雨青年&#xff0c;今天我要…

【LeetCode-中等题】105. 从前序与中序遍历序列构造二叉树

文章目录 题目方法一&#xff1a;递归 题目 方法一&#xff1a;递归 preorder [3,9,20,15,7] inorder [9,3,15,20,7] 首先根据 preorder 找到根节点是 3然后根据根节点将 inorder 分成左子树和右子树 左子树 inorder [9]右子树 inorder [15,20,7]这时候3是根节点 3的左子树…

C++信息学奥赛1178:成绩排序

#include<bits/stdc.h> using namespace std; int main(){int n;cin>>n; // 输入整数 n&#xff0c;表示数组的大小int arr[n]; // 创建大小为 n 的整型数组 arrstring brr[n]; // 创建大小为 n 的字符串数组 brrfor(int i0;i<n;i) cin>>brr[i]>>ar…

数据库设计的六个基本步骤

按照规范设计的方法&#xff0c;考虑数据库及其应用系统开发全过程&#xff0c;可将数据库设计分为以下6个阶段&#xff0c;分别为&#xff1a; 1.需求分析&#xff0c; 2.概念结构设计&#xff0c; 3.逻辑结构设计&#xff0c; 4.物理结构设计&#xff0c; 5.数据库实施&…

Ceph IO流程及数据分布

1. Ceph IO流程及数据分布 1.1 正常IO流程图 步骤&#xff1a; client 创建cluster handler。client 读取配置文件。client 连接上monitor&#xff0c;获取集群map信息。client 读写io 根据crshmap 算法请求对应的主osd数据节点。主osd数据节点同时写入另外两个副本节点数据。…

MES在人工智能方面的应用

MES&#xff08;制造执行系统&#xff09;在人工智能方面的应用主要集中在优化制造流程、提高生产效率和质量控制等方面。以下是一些MES在人工智能领域的应用案例&#xff1a; 1. 预测性维护&#xff1a;通过收集和分析生产设备的传感器数据&#xff0c;结合机器学习算法&am…

Tauri打包windows应用配置中文界面

使用 Tauri Rust 开发桌面应用&#xff0c;在 windows 系统上&#xff0c;打包后安装包名称后缀、安装界面、相关说明默认都是英文的。如果要默认显示为中文&#xff0c;则需要在 tauri.conf.json 中配置相应参数。 前言 默认情况下&#xff0c;在 windows 系统打完的 mis 包…

苹果照片丢失了?三招教你快速找回珍贵照片

照片记录了我们生活中的无数美好瞬间&#xff0c;能够帮助人们重新唤起那些珍贵的记忆。平时&#xff0c;大家也喜欢通过分享照片来让家人和朋友更加了解自己的生活。 如果手机上的照片不小心误删或者莫名丢失&#xff0c;请不必过度焦虑。小编为大家整理了适合果粉恢复苹果照…

中途接手项目,项目经理何如顺利交付?

有一个新项目&#xff0c;因为项目不被公司领导看中&#xff0c;项目金额小&#xff0c;对公司没有多少价值&#xff0c;且客户要求较多&#xff0c;但是碍于客户是熟人又不得不做&#xff0c;原来的项目经理承受不住压力离职&#xff0c;公司打算将这个项目交付这个我&#xf…

Doris行权限入门实战

Doris行权限原理 Doris支持了行级数据权限&#xff0c;当多租户模式使用的是共享表模式的情况下该功能能很方便的帮用户数实现行级权限控制。 Doris的行级权限是通过安全策略(ROW POLICY)实现的。 具体做法为&#xff1a;用户在指定表上创建安全策略并授权到具体的用户&#…

word 插入 高亮代码

word 插入高亮代码&#xff1a; 方法1&#xff1a;直接复制 IDE 中的内容&#xff08;优&#xff1a;随时随地复制&#xff0c;保留vscode格式。缺&#xff1a;其他IDE的格式可能就不好看了&#xff09;方法2&#xff1a;代码复制到网站 highlightcode.com&#xff0c;高亮后再…

函数返回多个值的应用

还是通过一个编程的例子来介绍函数返回多个值的应用。 举例&#xff1a;编写一个C 函数&#xff0c;该函数在一个字符串中找到可能的最长的子字符串并打印出来&#xff0c;该字符串是由同一字符组成的。 分析&#xff1a;这个字符串是存放在字符数组里的&#xff0c;要打印出来…

开源埋雷?一文带你看清安全风险!

导读 当前&#xff0c;国际形势中不稳定、不确定和不安全因素日益突出&#xff0c;各个行业中都存在没有硝烟的战争。在信息技术领域&#xff0c;由于去年俄乌冲突爆发&#xff0c;Oracle、SAP公司宣布暂停俄罗斯所有业务&#xff0c;Github考虑限制俄开发人员访问开源代码存储…

JS三座大山 —— 原型和原型链

系列文章目录 内容链接2023前端面试笔记HTML52023前端面试笔记CSS3 文章目录 系列文章目录前言一、原型是什么&#xff1f;二、原型链是什么&#xff1f;2.1 原型链全方面解析2.2 为什么构造函数也有原型&#xff1f; 总结 前言 理解原型和原型链可以帮助我们更好地理解 Java…

YOLOv5:解读general.py

YOLOv5&#xff1a;解读general.py 前言前提条件相关介绍general.pyclip_boxesscale_boxes ★ \bigstar ★xywh2xyxynon_max_suppression ★ ★ ★ \bigstar\bigstar\bigstar ★★★未完待续 参考 前言 记录一下自己阅读general.py代码的一些重要点&#xff0c;方便自己查阅。…

Java基础笔试题(一)

系列文章目录 Java基础知识题(一) Java基础知识题(二) Java基础知识题(三) Java基础知识题(四) Java基础知识题(五) 文章目录 系列文章目录 模块1 单选题1 单选题2 单选题2 单选题4 单选题5 模块2 单选题1 单选题2 补充一&#xff1a;理解is-a&#xff0c;has…

【python爬虫】5.爬虫实操(歌词爬取)

文章目录 前言项目&#xff1a;寻找周杰伦分析过程代码实现重新分析过程什么是NetworkNetwork怎么用什么是XHR&#xff1f;XHR怎么请求&#xff1f;json是什么&#xff1f;json数据如何解析&#xff1f;实操&#xff1a;完成代码实现 一个总结一个复习 前言 这关让我们一起来寻…

GraphQL渗透测试案例及防御办法

什么是GraphQL GraphQL 是一种 API 查询语言&#xff0c;旨在促进客户端和服务器之间的高效通信。它使用户能够准确指定他们在响应中所需的数据&#xff0c;从而有助于避免有时使用 REST API 看到的大型响应对象和多个调用。 GraphQL 服务定义了一个合约&#xff0c;客户端可…

【Linux系列】使用虚拟机安装Linux系统

首发博客地址 首发博客地址[1] 系列文章地址[2] 下载虚拟机 请从官网下载&#xff1a; https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 如需不限速下载&#xff0c;请关注【程序员朱永胜】并回复 1018…

自研的外贸搜索工具

全球智能搜索 独有的VVPN技术有效绕过各种限制获取国外搜索引擎数据 1.支持全球所有国家搜索引擎&#xff0c;及社交平台&#xff0c;精准定位优质的外贸客户. 2.全球任意国家地区实时采集. 3.搜索引擎全网邮箱电话采集 4.社交平台一键查看采集&#xff08;Facebook,Twitter,L…