WEB服务器的部署及优化

一.用户常用关于web的信息

(1).什么是www
  • wwwworld wide web的缩写,及万维网,也就是全球信息广播的意思。
  • 通常说的上网就是使用www来查询用户所需要的信息。
  • www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各处去。
  • 当你连接www网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就是浏览器。
(2).网址
  • URIUniform Resource Identifier统一资源标识,分为URLURN
  • URN:Uniform Resource Naming,统一资源命名,P2P下载使用的磁力链接是URN的一种实现
  • URLUniform Resorce Locator,统一资源定位符用于描述某服务器某特定资源位置
  • 两者区别:而URL提供查找该事物的方法。URN仅用于命名,而不指定地址
(3).URL组成

每一个网页都有只属于自己的URL,它具有全球唯一性。URL由以下几部分组成:

  1. 协议:常用的有http协议,https(http+ssh)协议。

  2. 服务器主机地址:可以是域名,也可以是主机名,或IP地址。

  3. 端口:服务器设定的端口。URL地址里一般无端口,因为服务器使用了协议的默认端口,用户通过url访问服务器时,可以省略。

  4. 路径:访问的资源在服务器下的相对路径,是服务器上的一个目录或者文件地址。

  5. 参数:查询搜索的部分,通过问号连接到路径后面,有时候也归类到路径中。

二.HTTP简介

(1).什么是http
  • HTTP协议:全称为Hyper Text Transfer Protocol(超文本传输协议)
  • 简单来说http就是从服务器传输超文本(html)到本地浏览器的传输协议
  • HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URLHTTP服务端即WEB服务端发送请 求(RequestWeb服务端根据接收到的请求数据后,向客户端发送响应信息(Response
(2).http工作机制
一次http事务包括:
  • http请求:http request
  • http响应: http response
Web资源: web resource
一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请求。因此,一个"Web页面通常并不是单个资源,而是一组资源的集合
资源类型:
  • 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同
  • 常见文件后缀:.html,.txt,.jpg,.js,.css,mp3,avi
  • 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同
  • 常见文件后缀:.php,jsp,asp
(3).http访问请求完整过程

一次完整的HTTP请求过程包括以下步骤‌:

  1. DNS解析‌:浏览器首先进行DNS解析,查找域名的IP地址。浏览器会先检查自身的DNS缓存,如果没有找到,会继续检查系统DNS缓存和hosts文件。如果这些地方都没有找到,浏览器会向DNS服务器发起查询请求,通常通过UDP协议向DNS服务器发送递归查询请求‌。

  2. TCP三次握手‌:在获取到域名对应的IP地址后,浏览器会与服务器建立TCP连接。这个过程称为TCP三次握手。客户端发送一个SYN包,服务器回应一个SYN-ACK包,最后客户端发送一个ACK包,完成三次握手,建立连接‌。

  3. 发起HTTP请求‌:建立TCP连接后,浏览器发起HTTP请求。这通常是通过GET请求获取HTML页面,但HTTP协议也支持POST、PUT、DELETE等其他请求方法‌。

  4. 服务器响应HTTP请求‌:服务器接收到请求后,处理并返回相应的数据,通常是HTML页面或其他资源‌。

  5. 浏览器解析和渲染‌:浏览器接收到数据后,解析HTML页面,加载页面中的资源(如CSS、JavaScript、图片等),并最终渲染页面呈现给用户‌。

  6. 关闭TCP连接‌:完成数据传输后,浏览器和服务器会关闭TCP连接‌

(4).http协议报文头部结构

1.http请求报文

求情报文由三部分组成即:开始行、首部行、是体主体
开始行:请求方法 url 版本 CRLF
首部行通常用键值表示
空格
实体主题数据,一般在post动作中可以提看到

2.http响应报文

求情报文由三部分组成即:开始行、首部行、是体主体
开始行:http版本 状态码 短语 CRLF
首部行通常用键值表示
空格
实体主题数据,即获取内容

三.Nginx服务

(1).Nginx的安装

安装前要先在Linux系统中配置本地yum源

命令:yum install -y nginx

启动nginx服务;要先关闭防火墙,以及确保selinux状态关闭

当前nginx服务在打开状态

(2).Nginx的配置

配置文件在/etc/nginx/nginx.conf

1.基于ip访问

在/usr/share/nginx/html目录中的index.html文件中

 将index.htm写入index.html这个文件中,在浏览器中访问

此时就可以通过浏览器访问IP,基于/usr/share/nginx/html/index.html文件中的内容

修改默认端口

此时浏览器访问ip后面要加上端口号

在/usr/share/nginx/html/目录中也可以创建以.html结尾的文件,并写入内容,通过修改配置文件也能实现访问ip查看内容

在配置文件中加入index  hhh.html

此时输入IP地址为添加文件的内容

也可以创建一个目录,在目录中创建以.html结尾的文件,写入内容也可以访问

在配置文件中修改

此时访问IP查看结果

可以在Linux系统中添加两个ip原有IP内容作对比

[root@Server ~]# ip a a 192.168.47.201/24 dev ens160
[root@Server ~]# ip a a 192.168.47.202/24 dev ens160

此时查看ip

[root@Server ~]# ip a

创建两个目录,并且创建目录下的以.html结尾的文件以及撰写内容

[root@Server ~]# mkdir /hjw/news.hjw.org/html/ -p
[root@Server ~]# mkdir /hjw/bbs.hjw.org/html/ -p
[root@Server ~]# 
[root@Server ~]# echo new.hjw.org > /hjw/news.hjw.org/html/index.html
[root@Server ~]# echo bbs.hjw.org > /hjw/bbs.hjw.org/html/index.html
[root@Server ~]# 

在/etc/nginx/conf.d(子配置目录)中建立一个以.conf结尾的子配置文件

[root@Server conf.d]# pwd
/etc/nginx/conf.d
[root@Server conf.d]# 
[root@Server conf.d]# 
[root@Server conf.d]# vim haha.conf
[root@Server conf.d]# systemctl restart nginx
[root@Server conf.d]# 

进入到子配置文件中,撰写相关内容

此时我们就可以用这两个IP访问上一步中在两个目录中添加的index.html文件中的内容。

2.基于域名的访问控制

修改基于IP访问中子配置文件中的参数内容

[root@Server conf.d]# pwd
/etc/nginx/conf.d
[root@Server conf.d]# 
[root@Server conf.d]# vim haha.conf 
[root@Server conf.d]# systemctl restart nginx

此时还需要在我们window系统中修改主机名参数,将我们的域名添加

此时就可以通过域名来访问

(3).web服务器的访问控制
1.基于IP的访问控制

假如我们比较重要的日志文件在/usr/share/nginx/html/admin目录中的index.html文件中,由于比较机密,所以需要设置只能自己的主机访问

创建admin目录,并写入文件

在配置文件中设置访问控制

allow 为自己主机的ip,此时只有自己主机能够访问这个index.html文件

2.基于认证的访问控制

需要安装httpd服务

建立认证文件

修改配置文件

此时浏览器访问ip就要输入我们所设置的用户名以及密码

四.web服务器的数据加密(https

(1).https简介
  • HTTP协议以明文方式发送内容,不提供任何方式的数据加密,
  • HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等
  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS
  • HTTPS全称:Hyper Text Transfer Protocol over Secure Socket Layer ),是以安全为目标的 HTTP通道
  • HTTPS并不是一个新协议,而是HTTP+SSLTLS
  • 原本HTTP先和TCP直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSLTCP通信相当于SSL被嵌在了HTTPTCP之间
    SSL “Secure Sockets Layer”的缩写,中文叫做安全套接层。它是在上世纪90年代中期,由网景 公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLSTransport Layer Security传输层安全协议)
(2).https握手流程
(3).部署https
1.生成密钥
[root@Server ~]# mkdir /etc/nginx/certs -p
[root@Server ~]# openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/nginx/certs/hjw.org.key -x509 -days 365 -out /etc/nginx/certs/hjw.org.crt
....+...........+.+.........+..+.......+..+.+..+...............+.+......+...........+....+......+.....+.......+.....+.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+....+..+...+.........+......+.+.....+.............+...+.........+.........+..+..................+.+......+.........+.....+...+...+.......+..+.+.........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+......+..+...+......+.................................+...+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+............+......+......+...+...+...+.+...+...........+.+......+..............+...................+.....+.+......+..+.+..+.......+.....+.+......+.....+...+.+..+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+............+.+..+......+....+..+.+........+..........+.........+.....+.+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+.+..+....+...+..+....+.....+.+...........+..........+..+...+.........+....+.........+...+...+.........+.....+.+....................+.......+..+.......+......+..+...+....+.....+.+..+...+...+.+.........+...........+..................+..............................+.+.....+......+.+............+...........+....+...+...+.........+...+..+...............+.............+...+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ShaanXi
Locality Name (eg, city) [Default City]:Xian
Organization Name (eg, company) [Default Company Ltd]:hjw
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:hjw
Email Address []:hjw@mail.com
2.配置nginx开启https功能
[root@Server ~]# mkdir /hjw/login.hjw.org/html -p
[root@Server ~]# echo logins.hjw.org > /hjw/login.hjw.org/html/index.html
[root@Server ~]# vim /etc/nginx/conf.d/haha.conf 

进入子配置文件中添加此段话

注意:在我们没有强制访问加密时需要在网站前+https://跟网址;与域名访问控制一样,需要在Windows中添加域名。

3.强制访问加密
[root@Server ~]# vim /etc/nginx/conf.d/haha.conf 
[root@Server ~]# systemctl restart nginx

进入子配置文件中添加以下内容

这样用户就不需要在域名前+https://访问

.搭建动态网站

  • 动态网站指网站内容可根据不同情况动态变更的网站,一般情况下动态网站通过数据库进行架构。
  • 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功能。
  • 动态网页:使用网页脚本语言,比如phpJSP等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法.
1.安装php并启动php服务
[root@Server ~]# yum install -y php
[root@Server ~]# systemctl enable --now php-fpm.service 
2.生成php测试页
[root@Server ~]# mkdir /php
[root@Server ~]# cd /php/
[root@Server php]# pwd
/php
[root@Server php]# vim index.php
[root@Server php]# cat index.php 
<?php
phpinfo();
?>
[root@Server php]# 
3.配置web服务器对php页面的发布
[root@Server ~]# vim /etc/nginx/nginx.conf
[root@Server ~]# systemctl restart nginx

输入IP进入网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值