Linux之web服务器

目录

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/pszyauthname  "My  privately website"authtype  basicrequire   user  t1 t2
</Directory>

重启服务

[root@localhost /]# systemctl restart httpd

测试

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

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

相关文章

在支付宝中 下载社会保险参保证明 方法

这里 我们打开支付宝 选择 市明中心 然后选择 社保 这里 在社保查询下 找到 个人社会参保证明查询 这里 选择好自己的省市区 文件就会出现在下面了 我们直接点击这个文件进入 下面就会有下载的选项了

深度解析 PostgreSQL Protocol v3.0(一)

引言 PostgreSQL 使用基于消息的协议在前端&#xff08;也可以称为客户端&#xff09;和后端&#xff08;也可以称为服务器&#xff09;之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴&#xff0c;将带大家深度了…

IO面试题整理

1.同步/异步&#xff0c;阻塞/非阻塞是一样的概念吗&#xff1f; 不一样。 阻塞/非阻塞说的是调用者。调用者需要等待就是阻塞&#xff0c;不需要等待就是非阻塞。 同步/异步说的是被调者通知调用者的方式。被调者执行完成后再恢复调用者是同步。被调者立即告诉调用者收到求…

无涯教程-Android - Spinner函数

Spinner允许您从下拉菜单中选择一个项目 例如。使用Gmail应用程序时,将显示如下所示的下拉菜单,您需要从下拉菜单中选择一个项目。 Spinner Example 示例 本示例演示计算机的类别,您需要从类别中选择一个类别。 以下是修改后的主要Activity文件src/com.example.spinner/Andr…

解读《生成式人工智能服务管理暂行办法》

《生成式人工智能服务管理暂行办法》 第一章 总 则第二章 技术发展与治理第三章 服务规范第四章 监督检查和法律责任第五章 附 则 以ChatGPT为代表的现象级互联网应用的出现&#xff0c;掀起了人工智能领域新一轮技术浪潮。作为新一代信息技术&#xff0c;生成式人工智能通过…

文心一言 VS 讯飞星火 VS chatgpt (85)-- 算法导论8.2 2题

二、用go语言&#xff0c;试证明 COUNTING-SORT 是稳定的。 文心一言&#xff1a; 要证明 COUNTING-SORT 是稳定的&#xff0c;我们需要证明在排序过程中&#xff0c;具有相同值的元素在排序后仍保持其原始的相对顺序。COUNTING-SORT 是一种基于计数的排序算法&#xff0c;其…

无涯教程-Android - ToggleButton函数

ToggleButton将已选中/未选中状态显示为按钮。它基本上是一个带有指示灯的开/关按钮。 Toggle Button ToggleButton属性 以下是与ToggleButton控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。 Sr.No.Attribute…

【GoLang】go入门:go语言执行过程分析 常见数据类型(基本数据类型)

1、go语言执行过程分析 【1】执行流程分析 通过 go build 进行编译 运行上一步生成的可执行文件 通过 go run 命令直接运行 【2】上述两种执行流程的区别 在编译时&#xff0c;编译器会将程序运行时依赖的库文件包含在可执行文件中&#xff0c;所以可执行文件会变大很多通过g…

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比 目录 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预…

VScode 国内下载源 以及 nvm版本控制器下载与使用

VScode 国内下载源 进入官网 https://code.visualstudio.com/ 点击下载 复制下载链接到新的浏览器标签 将地址中的/stable前的az764295.vo.msecnd.net换成vscode.cdn.azure.cn&#xff0c;再回车就会直接在下载列表啦。 参考大神博客 2.使用nvm 对 node 和npm进行版本控制…

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理&#xff08;问过&#xff09;HTTP/1.1 新特性HTTP/2.0 与 RPC&#xff08;问过&#xff09;GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手&#xff08;问过&#xff09;为什么每次TCP 连…

密码算法、密钥体系---安全行业基础篇1

一、密码算法 密码算法是一种数学和计算方法&#xff0c;用于保护数据的机密性和安全性。不同的密码算法使用不同的数学原理和技术来加密和解密数据。以下是一些常见的密码算法类型&#xff1a; 1. **对称密码算法&#xff1a;** 特点&#xff1a;相同的密钥用于加密和解密数…

Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题

文章目录 介绍jsoup使用1.解析url&#xff0c;获取前端代码2.解决京东安全界面跳转3.获取每一组的数据4.获取商品数据的具体信息4.最终代码 介绍 网络爬虫&#xff0c;就是在浏览器上&#xff0c;代替人类爬取数据&#xff0c;Java网络爬虫就是通过Java编写爬虫代码&#xff0…

Django学习笔记-AcApp端授权AcWing一键登录

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样&#xff0c;只有申请授权码这一步有一点细微的差别&#xff1a; 我们在打开 AcApp 应用之后会自动向 AcW…

com.squareup.okhttp3:okhttp 组件安全漏洞及健康度分析

组件简介 维护者square组织许可证类型Apache License 2.0首次发布2016 年 1 月 2 日最新发布时间2023 年 4 月 23 日GitHub Star44403GitHub Fork9197依赖包5,582依赖存储库77,217 com.squareup.okhttp3:okhttp 一个开源的 HTTP 客户端库&#xff0c;可以用于 Android 和 Jav…

【C++心愿便利店】No.4---C++初谈类和对象

文章目录 前言一、面向过程和面向对象初步认识二、类的引用三、类的定义四、类的访问限定符及封装五、类的作用域六、类的实例化七、类对象模型八、this指针 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&…

C# WPF监听USB插入拨出

可以全部监听。好用 private void FormF100WriteCortexLicense_Load(object sender, EventArgs e){this.Text this.Text " " FT_Tools.Program.version;USB USBWatcher new USB();USBWatcher.AddUSBEventWatcher(USBEventHandler, USBEventHandler, new TimeSpa…

渗透测试漏洞原理之---【失效的访问控制】

文章目录 1、失效的访问控制1.1、OWASP Top 101.1.1、A5:2017-Broken Access Control1.1.2、A01:2021 – Broken Access Control 1.2、失效的访问控制类别1.2.1、水平越权1.2.2、垂直越权 1.3、攻防案例1.3.1、Pikachu靶场 Over Permision1.3.2、DVWA越权利用失效的访问控制漏洞…

MongoDB基础知识点

MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongod…

Laravel chunk和chunkById的坑

在编写定时任务脚本的时候&#xff0c;经常会用到chunk和chunkById的API。 一、前言 数据库引擎为innodb。 表结构简述&#xff0c;只列出了本文用到的字段。 字段类型注释idint(11)IDtypeint(11)类型mark_timeint(10)标注时间&#xff08;时间戳&#xff09; 索引&#x…