web
一、web基本概念和常识
Web:为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。
Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。
Web 应用开发也经过了几代技术的不断发展,目前Web开发依然是最重要的开发内容之一。Web基础的技术包括超文本标记语言(HTML)和HTTP协议,HTML是一种呈现数据的方式(给人看的),HTTP则是一组通信的标准(语法、语义、时许),可以简单的理解为HTTP携带HTML。
1. web应用:
网站(广义上的PC,手机app)
2. 浏览器(Browser):
也称用户代理,web客户端,主要有IE、Edge、Chrome、Firefox、腾讯浏器,360浏览器等。
3. web服务器(web server):
也称HTTP服务器(HTTP server),主要有Nginx、Apache、Tomcat 等。
一、网站基础
1、域名
域名是一个IP地址的“面具”,目的是便于记忆和访问一个或一组服务
器的地址(网站,电子邮件,FTP等)。
2、域名解析
本地HOSTS解析
DNS服务器解析
3、网站的基本概念
网站、网页、主页;
HTTP、URL、HTML、超链接
4、web网站
web1.0(以编辑为特征)
web2.0(侧重用户交互)
5、动态页面与静态页面的差别
(1)URL不同
静态页面链接里没有“?”
动态页面链接里包含“?”
[root@git ~]# yum -y install httpd
[root@git ~]# systemctl start httpd
[root@git ~]# echo "我是web" > /var/www/html/index.html
6、域名格式
http://(协议头)www.bing.com(域名)/(URI资源:路径/文件
名)示例:https://www.bilibili.com/v/game/?spm_id_from=333.851.b_Z
072696d6172794368616e6e656c4d656e75.21
三、HTTP 协议
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer
Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏
览器的传送协议。
1、HTTP 原理
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类
型为HTML文件,图片文件,查询结果等。HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向
HTTP服务端即web服务器发送所有请求,web服务器收到客户端请求
后进行响应。
2、HTTP特点
1. http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
3. 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。除开响应字符串之外,还可以上传和下载二进制文件
4. 无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
5. 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
[root@localhost html]# dd if=/dev/zero of=/var/www/html/a.txt bs=30M count=1
3、URI和URL的区别
(1)HTTP使用统一资源标识符(Uniform Resource Identifiers,URI)来传输数据和建立连接。
URI:Uniform Resource Identifier 统一资源标识符
URL:Uniform Resource Location 统一资源定位符
(2)URI 是用来标识一个具体的资源的,我们可以通过URI知道一个资源是什么,使用它就能够唯一地标记互联网上资源。
(3)URL则是用来定位具体的资源的,标识了一个具体的资源位置。互联网上的每个文件都有一个唯一的。
(4)URL,也就是我们俗称的网址,它实际上是URI的一个子集。
(5)URI不仅包括URL,还包括URN(统一资源名称),它们之间的关系如下:
4、HTTP报文组成
(1)客户端发出请求:
GET/index.php HTTP/1.5/ Host:zgod.cn
(2)客户端浏览器发送出来的请求格式:
GET:这个部分只声明了请求方式,除了get方式可能还有post 等方式。GET表示请求,POST表示邮寄。
/index.php:这里是一个URL,表示了我们要访问的资源是哪个。
HTTP/1.5/:这里表示的是客户端浏览器使用的协议版本是1.5。
Host:zgod.cn:这是请求是交给主机zgod.cn的。
四、HTTPS 协议
HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此,HTTPS应运⽽⽣。
HTTPS 的全称为 (HyperTextTransferProtocoloverSecureSocketLayer), HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了 传输过程的安全性。 HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL。
五、搭建apache服务器
查看主机的所有打开的端口
[root@localhost html]# firewall-cmd --list-ports
安装http服务
[root@localhost ~]# yum -y install httpd
查看安装情况以及安装的资源文件
[root@localhost html]# rpm -qa | grep httpd
查看安装资源文件[root@localhost html]# rpm -ql httpd
查看配置文件
[root@localhost html]# ls /etc/httpd
[root@localhost html]# vim /etc/httpd/conf/httpd.conf启动http服务
[root@localhost ~]# systemctl restart httpd
不能直接停用防火墙,可以单独开端口或服务[root@localhost ~]# firewall-cmd --zone=public --add-service=http
[root@localhost ~]# firewall-cmd --add-port=80/tcp
[root@localhost ~]# firewall-cmd --list-all
services: ssh dhcpv6-client http
ports: 80/tcp
打开服务以后不会直接生效,需要执行下面命令
[root@localhost ~]# firewall-cmd --reload 别执行
[root@localhost ~]# mkdir /var/www/html/img/
[root@localhost ~]# cd /var/www/html/img/[root@localhost ~]# vim /var/www/html/index.html
nginx
一、源码安装nginx(192.168.8.151)
1、下载安装包
[root@localhost ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz
[root@localhost ~]# ls -lh
2、解压
[root@localhost ~]# tar -zxvf nginx-1.26.1.tar.gz
3、安装依赖软件
[root@localhost ~]# yum -y install gcc gcc-c++
[root@localhost ~]# yum -y install openssl-devel make pcre-devel
4、编译安装nginx并安装
configure 编译安装前的预配置 --prefix=/usr/local/nignx 指定软件的安装路径,是软件要装到哪里 --user=nignx 程序用户为nginx --group=nginx 组为nginx --with-http_ssl_module 提供htts支持,ssl证书模块 --with-http_stub_status_module 获取nginx工作状态 --with-http_realip_module 获取真实客户端IP --with-stream 启用TCP/UDP代理模块 [root@localhost nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
[root@localhost nginx-1.26.1]# make && make install
5、创建账户
[root@localhost nginx-1.26.1]# useradd -s /bin/nologin -M nginx
6、启动nginx
[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx
[root@localhost sbin]# netstat -lnput | grep nginx
7、检查目录
[root@localhost nginx-1.26.1]# tree /usr/local/nginx/
[root@localhost nginx-1.26.1]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf 存放nginx配置文件的目录 html 存放索引文件也就是网站首页(站点根目录)的目录 logs 存放nginx日志的目录 sbin 存放nginx可执行程序的目录
8、开放端口或者服务
[root@localhost nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent
重载防火墙
[root@localhost nginx]# firewall-cmd --reload
9、修改主配置文件
[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
nginx.conf 为nginx的主配置文件,编译安装的配置文件在之前预配置时指定的软件目录下,一般为
/usr/local/nginx/conf/nginx.conf;yum安装的nginx,主配置文件位于/etc/nginx/nginx.conf。nginx.conf配置文件由指令控制的模块组成。
指令分为简单指令和块指令,一个简单指令由名称和参数组成,空格分隔,分号结尾,如:listen 80。
块指令与简单指令相同的结构,但不是以分号结尾,而是以大括号包围的组附加指令结束,如:server{}。
10、启动或者关闭nginx
指令能在命令行使用,因为$PATH目录中能找到这个可执行文件或者可执行连接
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/
[root@localhost nginx]# ls -l /usr/bin/nginx[root@localhost nginx]# nginx -s stop
[root@localhost nginx]# nginx
[root@localhost nginx]# netstat -lnput | grep nginx
11、脚本启动nignx服务
[root@localhost nginx]# vim ~/nginx.sh
[root@localhost nginx]# source ~/nginx.sh
12、以systemctl 控制nginx
[root@localhost nginx]# ls /usr/lib/systemd/system
[root@localhost nginx]# vim /usr/lib/systemd/system/nginx.service重载配置文件
[root@localhost nginx]# systemctl daemon-reload
[root@localhost nginx]# systemctl restart nginx
13、添加监控模块
修改配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
[root@localhost ~]# systemctl restart nginx
浏览器输入192.168.8.151/status
Active connections: 2 活动的连接数 server accepts handled requests 累计接受的连接数,累计处理的连接数,累计请求的数2 2 2 Reading: 0 Writing: 1 Waiting: 1 正在读取,写入和等待的连接数
二、虚拟主机的配置
一个“location”相当于一个虚拟主机,也就是用户访问网站时,点击跳转的另一个页面。
location 内可以添加nginx各种功能模块。
1、配置多个虚拟机
新建一台机器(192.168.8.152)
[root@localhost ~]# scp root@192.168.8.151:~/nginx-1.26.1.tar.gz ./
[root@localhost nginx-1.26.1]# yum -y install gcc gcc-c++ openssl-devel pcre-devel make
[root@localhost ~]# tar -zxvf nginx-1.26.1.tar.gz
[root@localhost nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
[root@localhost nginx-1.26.1]# make && make install
[root@localhost nginx-1.26.1]# useradd -s /bin/nologin -M nginx
[root@localhost nginx-1.26.1]# echo "我是后端服务器" > /usr/local/nginx/html/index.html
[root@localhost nginx-1.26.1]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@localhost nginx-1.26.1]# firewall-cmd --reload[root@localhost nginx-1.26.1]# /usr/local/nginx/sbin/nginx
[root@localhost nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf