web、http协议、apache服务、nginx服务

web基本概念和常识

概念

web:为用户提供的一种在互联网上浏览信息的服务,是动态的、可交互的、跨平台的和图形化的;

为用户提供各种互联网服务,这些服务包括浏览服务以及各种交互式服务,包括聊天、购物等;

web应用:网站(广义上的PC,手机app)

浏览器:也称用户代理,web客户端,主要有IE、Edge等

web服务器:也称HTTP服务器,主要有 Nginx、Apache、Tomcat

网站基础

1、域名

是一个IP地址的”面具“,目的是便于记忆和访问一个或一组服务器的地址。

2、域名解析

本地HOSTS解析

DNS服务器解析

3、网站的基本概念

网站、网页、主页;

HTTP、URL、HTML、超链接

4、web网站

web1.0(以编辑为特征)

web2.0(侧重用户交互)

5、静态页面的差别

URL不同

后缀不同

内容不同

6、域名格式

http://(协议头)www.bing.com(域名)/(URI资源:路径/⽂ 件名)

http协议

是超文本传输协议的缩写,是从web服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。

HTTP原理

是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数 据类型为HTML ⽂件,图⽚⽂件,查询结果等;

HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL 向HTTP服务端即web服务器发送所有请求,web服务器收到客 户端请求后进⾏响应

HTTP 特点

⽀持客户端/服务端模式

简单快速、灵活:HTTP 允许传输任意类型的数据对象

⽆连接:限制每次连接只处理⼀个请求

⽆状态:指协议对于事务处理没有记忆,后续处理需要 前⾯的信息,则必须重传

HTTP 报⽂格式

⼀个完整的http访问包含请求(request)和响应(response)

HTTP协议缺点

不会保存状态信息;

HTTP使⽤明⽂传播,有三⼤⻛险

(1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。

(2)篡改⻛险(tampering):第三⽅可以修改通信内容。

(3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通 信。

SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到:

(1)所有信息都是加密传播,第三⽅⽆法窃听。

(2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。

(3)配备身份证书,防⽌⽌身份被冒充

HTTPS 安全通信的四⼤原则

(1)机密性

(2)完整性

(3)身份认证

(4)不可否认性

apache服务

最早的web服务程序,基于http协议提供网页浏览服务

特点

模块化设置、开放源代码、跨平台应⽤、⽀持多种 web 编程语 ⾔、运⾏稳定

搭建apache服务器

root@server2 ~]# yum -y install httpd

[root@server2 ~]# systemctl start httpd

[root@server2 ~]# netstat -anpt | grep httpd #查 看端⼝确认apache已启⽤

[root@server2 ~]# systemctl status firewalld.service #查看防⽕墙是否启⽤,若启⽤则设置 apache服务可通⾏规则

[root@server2 ~]# firewall-cmd --permanent --addservice=http #设置防⽕墙放⾏apach

[root@server2 ~]# firewall-cmd --reload #重载防 ⽕墙规则

查看华为云主机的所有打开的端口

firewall-cmd  --list-ports

关闭防火墙

apache 配置⽂件

yum 安装的 apache,配置⽂件在 /etc/httpd/conf/httpd.conf

如果是编译安装的 apache,那么配置⽂件在⾃⼰编译安装的安 装⽬录下

[root@server2 ~]# vim /etc/httpd/conf/httpd.conf
37 # Listen: Allows you to bind Apache to specific
IP addresses and/or
38 # ports, instead of the default. See also the
<VirtualHost>
39 # directive.
40 #
41 # Change this to Listen on specific IP addresses
as shown below to
42 # prevent Apache from glomming onto all bound IP
addresses.
43 #
44 #Listen 12.34.56.78:80
45 Listen 80 #默认的httpd监听端⼝,可在下⾯添加其他⾃
设端⼝
46
47 #
48 # Dynamic Shared Object (DSO) Support
......省略部分内容
92 # ServerName gives the name and port that the
server uses to identify itself.
93 # This can often be determined automatically,
but we recom mend you specify
94 # it explicitly to prevent problems during
startup.
95 #
96 # If your host doesn't have a registered DNS
name, enter i ts IP address here.
97 #
98 ServerName www.example.com:80 #指定httpd服务域
名和该域名的端⼝,可以⼿动修改其他域名
99
100 #
101 # Deny access to the entirety of your server's
filesystem. You must

nginx服务

开源、轻量级、高性能的http反向代理服务器

占用内存少、并发能力强、采用C语言编写

可以用来做负载均衡及反向代理使用、负载均衡使用较多

与nginx同类的web服务器有apache、tomcat等

服务特点
模块化设计

分为核心模块、http模块、事件模块和邮件模块四类。

低内存消耗、高开发

系统资源开销和CPU使用效率都很优秀。

事件驱动

采用异步方式处理请求

同步:发送⽅发出消息后,需要等待接收到接收⽅发回的响 应,或者通过回调函数来接收到对⽅响应信息

异步:发送方发出请求后,接收方不需要返回信息或者不等待返回消息,直接提供响应请求机制

高可靠性,master与worker架构

⼀个主进程和多个⼯作进程

master进程:主要⽤来监控worker进程⼯作状态进⾏相应重 启、停⽌等操作

worker进程:进⾏具体提供服务,接受请求和处理请求

支持热更新配置、日志文件滚动、平滑升级

/usr/local/nginx/sbin/nginx -s reload

html目录中的文件发生修改之后,不需要nginx服务

丰富的扩展模块

Nginx 基本功能

(1)静态资源 Web 服务器

(2)基于域名/IP/端⼝的虚拟主机

(3)HTTP/HTTPS、SMTP、POP3 和 TCP/UDP 反向代理

      客户端代理,增强客户端的作用

      反向代理是保护服务器

(4)负载均衡

nginx架构

(1)主进程(master process)

主要与外界通信和⼯作进程管理; 

读取 nginx 配置⽂件并验证有效性;

建⽴、绑定和关闭 socket(套接字,IP地址:端⼝号);

按照配置⽂件⽣成、管理和结束⼯作进程;

nginx 重启、停⽌、重载配置⽂件、平滑升级、管理⽇志⽂件 等

(2)⼯作进程(worker process)

接受客户端请求,将请求交给各个功能模块处理;

接收主进程的指令并执⾏;

与后端服务器通信,接收后端服务器处理的结果,发送结果给客 户端;

数据缓存管理;

访问缓存索引、重建、查询和调⽤缓存数据;

系统 IO 调⽤,获取响应数据,发送响应给客户端;

源码编译安装  

下载源码包

[root@a1 ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz

解压

[root@a1 ~]# tar -zxvf nginx-1.26.1.tar.gz 

查看文件

[root@a1 ~]# ls nginx-1.26.1/
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README

安装软件包

[root@a1 ~]# yum -y install gcc gcc-c++ 

[root@a1 ~]# yum -y install openssl-devel.i686 

[root@a1 ~]# yum -y install pcre-devel

[root@a1 ~]# yum -y install openssl-devel

[root@a1 ~]# yum -y install make
 

编译安装配置

[root@a1 ~]# cd nginx-1.26.1/
[root@a1 nginx-1.26.1]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@a1 nginx-1.26.1]# make && make install
 

安装完成创建用户

[root@a1 nginx-1.26.1]# useradd -s /bin/nologin -M nginx

检查目录

[root@a1 nginx-1.26.1]# tree /usr/local/nginx/
/usr/local/nginx/
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin├── nginx└── nginx.old4 directories, 19 files

切换目录

[root@a1 nginx-1.26.1]# cd /usr/local/nginx/
[root@a1 nginx]# ls
conf  html  logs  sbin
 

开发端口或者服务

[root@a1 nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@a1 nginx]# firewall-cmd --reload
success

创建软链接

[root@a1 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/
[root@a1 nginx]# ls -l /usr/bin/nginx 
lrwxrwxrwx. 1 root root 27 7月  29 16:15 /usr/bin/nginx -> /usr/local/nginx/sbin/nginx
[root@a1 nginx]# nginx
[root@a1 nginx]# netstat -lnput|grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8739/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      8739/nginx: master  
[root@a1 nginx]# nginx 

启动和关闭nginx服务

./nginx   ./nginx  -s  stop

修改了配置文件后,重载nginx服务网

./nginx  -s reload

[root@a1 nginx]# vim ~/inginx.sh
[root@a1 nginx]# source ~/inginx.sh 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8739/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      8739/nginx: master  
nginx正在执行或者80端口被占用
[root@a1 nginx]# cat ~/inginx.sh 
#!/bin/bash
/usr/local/sbin/nginx  &>  /dev/null
netstat -lnput|grep nginx
if [ $? -eq 0 ];thenecho "nginx正在执行或者80端口被占用"fi

以systemctl控制nginx

[root@a1 nginx]# vim /usr/lib/systemd/system/nginx.service
[root@a1 nginx]# systemctl daemon-reload 
[root@a1 nginx]# cat /usr/lib
lib/     lib64/   libexec/ 
[root@a1 nginx]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=Flase

[Install]
WantedBy=multi-user.target

如果直接使用sbin目录下nginx,就无法使用systemctl

开启状态监听模块

修改配置

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf

[root@nginx ~]# systemctl reload nginx.service

访问测试

虚拟主机配置

反向代理

[root@tomcat ~]# scp root@q92.168.1.17:~/nginx-1.26.1.tar.gz ./
ssh: Could not resolve hostname q92.168.1.17: Name or service not known
[root@tomcat ~]# scp root@192.168.1.17:~/nginx-1.26.1.tar.gz ./
nginx-1.26.1.tar.gz        100% 1216KB  21.9MB/s   00:00    
[root@tomcat ~]# tar -zxvf nginx-1.26.1.tar.gz 

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

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

相关文章

shp格式数据详解

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

MATLAB中“varargin”的作用

varargin是什么&#xff1f; 在MATLAB中&#xff0c;varargin是一个特殊的变量&#xff0c;用于接收函数输入参数中的可变数量的参数。它允许用户在调用函数时传递不确定数量的参数。 varargin的本质是一个包含了所有可变参数的cell数组。在函数内部&#xff0c;可以使用cell…

鸿蒙HarmonyOS开发:@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

文章目录 一、装饰器二、概述三、限制条件四、装饰器说明五、Toggle组件1、子组件2、接口3、ToggleType枚举4、事件 六、示例演示1、代码2、效果 一、装饰器 State装饰器&#xff1a;组件内状态Prop装饰器&#xff1a;父子单向同步Link装饰器&#xff1a;父子双向同步Provide装…

.NET周刊【7月第4期 2024-07-28】

国内文章 .NET 高性能缓冲队列实现 BufferQueue https://mp.weixin.qq.com/s/fUhJpyPqwcmb3whuV3CDyg BufferQueue 是一个用 .NET 编写的高性能的缓冲队列实现&#xff0c;支持多线程并发操作。 项目地址&#xff1a;https://github.com/eventhorizon-cli/BufferQueue 项目…

【Python】基础学习技能提升代码样例6:日志logging

logging 模块实现了python的日志能力。本文通过几个示例展示一些重点概念与用法。 一、线程安全介绍 logging 模块的目标是使客户端不必执行任何特殊操作即可确保线程安全。 它通过使用线程锁来达成这个目标&#xff1b;用一个锁来序列化对模块共享数据的访问&#xff0c;并且…

upload-labs靶场练习

文件上传函数的常见函数&#xff1a; 在PHP中&#xff0c;‌文件上传涉及的主要函数包括move_uploaded_file(), is_uploaded_file(), get_file_extension(), 和 mkdir()。‌这些函数共同协作&#xff0c;‌使得用户可以通过HTTP POST方法上传文件&#xff0c;‌并在服务器上保存…

实战:安装ElasticSearch 和常用操作命令

概叙 科普文&#xff1a;深入理解ElasticSearch体系结构-CSDN博客 Elasticsearch各版本比较 ElasticSearch 单点安装 1 创建普通用户 #1 创建普通用户名&#xff0c;密码 [roothlink1 lyz]# useradd lyz [roothlink1 lyz]# passwd lyz#2 然后 关闭xshell 重新登录 ip 地址…

kaggle使用api下载数据集

背景 kaggle通过api并配置代理下载数据集datasets 步骤 获取api key 登录kaggle&#xff0c;点个人资料&#xff0c;获取到自己的api key 创建好的key会自动下载 将key放至家目录下的kaggle.json文件中 我这里是windows的administrator用户。 装包 我用了虚拟环境 pip …

Vite + Vue3 + TS项目配置前置路由守卫

在现代前端开发中&#xff0c;使用 Vue 3 和 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具&#xff0c;可以显著提升开发体验。本文博主将指导你如何在 Vite Vue 3 TypeScript 项目中配置前置路由守卫&#xff08;Navigation Guards&#xff09;…

【YashanDB知识库】如何远程连接、使用YashanDB?

问题现象 在各个项目实施中&#xff0c;我们经常遇到客户、开发人员需要连接和使用YashanDB但不知如何操作的问题&#xff0c;本文旨在介绍远程连接、使用YashanDB的几种方式。 问题的风险及影响 无风险 问题影响的版本 历史版本~23.2 问题发生原因 无 解决方法及规避方…

前端web开发HTML+CSS3+移动web(0基础,超详细)——第1天

一、开发坏境的准备 1&#xff0c;在微软商店下载并安装VS Code 以及谷歌浏览器或者其他浏览器&#xff08;我这里使用的是Microsoft Edge&#xff09; 2&#xff0c;打开vs code &#xff0c;在电脑桌面新建一个文件夹命名为code&#xff0c;将文件夹拖拽到vs code 中的右边…

Windows10安装CMake图文教程

CMake是一个跨平台的开源构建工具&#xff0c;用于管理软件构建过程。CMake允许开发人员使用简单的语法来描述项目的构建过程&#xff0c;而无需直接处理特定于操作系统或编译器的细节。开发人员可以编写CMakeLists.txt文件来指定项目的源文件、依赖项和构建规则&#xff0c;然…

Ubuntu 20.04.6 安装 Elasticsearch

1.准备 -- 系统更新 sudo apt update sudo apt upgrade -- 安装vim 文本编辑器 sudo apt install vim-- jdk 版本确认 java -versionjdk 安装可以参照&#xff1a;https://blog.csdn.net/CsethCRM/article/details/140768670 2.官方下载Elasticsearch 官方地址&#xff1a;h…

Tekion 选择 ClickHouse Cloud 提升应用性能和指标监控

本文字数&#xff1a;4187&#xff1b;估计阅读时间&#xff1a;11 分钟 作者&#xff1a;ClickHouse team 本文在公众号【ClickHouseInc】首发 Tekion 由前 Tesla CIO Jay Vijayan 于 2016 年创立&#xff0c;利用大数据、人工智能和物联网等技术&#xff0c;为其汽车客户解决…

2024电赛H题参考方案(+视频演示)——自动行使小车

目录 一、题目要求 二、参考资源获取 三、参考方案 1、环境搭建及工程移植 2、移植MPU6050模块 3、移植TB6612电机驱动模块 4、整体控制方案视频演示 总结 一、题目要求 小编自认为&#xff1a;此次H题属于控制类题目&#xff0c;相较于往年较为简单&#xff0c;功能也算单一&a…

谷歌出品,一款免费的智能绘图工具

AutoDraw是由Google开发的一款基于网络的智能绘图工具&#xff0c;旨在通过人工智能技术帮助用户快速、简便地创建图画和图表。该工具于2017年4月11日由谷歌创意实验室推出&#xff0c;并迅速获得了广泛关注。 AutoDraw的核心功能是利用机器学习算法识别用户的草图或涂鸦&…

分布式SQL查询引擎之Presto

Apache Presto 是一个开源的分布式 SQL 查询引擎&#xff0c;旨在高效地对大规模数据集执行交互式查询。Presto 最初由 Facebook 开发&#xff0c;现已成为广泛使用的数据查询工具&#xff0c;特别是在大数据和分析领域。 主要特点 高性能&#xff1a;Presto 通过并行化和内存…

【A1web 1.0】靶机复现详解!

靶机地址&#xff1a; https://www.vulnhub.com/entry/ai-web-1,353/攻击机&#xff1a;kali 首先虚拟机建一个A1web 1.0靶机 切换nat模式 然后kali扫描 nmap -sV ip段 0/24 扫描出ip进行访问 访问没有什么信息 使用dirb 对网页…

使用 Matlab 绘制带有纹理的柱状图

以下是效果 1. 在 Matlab 里安装两个额外的库&#xff1a; hatchfill2 和 legendflex。 &#xff08;1&#xff09;搜索并安装 hatchfill2&#xff0c;用来画纹理 (2) 搜索并安装 legendflex&#xff0c;用来画自定义的图例 2. 代码&#xff08;说明见注释&#xff09; data …

排序算法辨析(快速记忆版)(冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序)保研面经

选择排序&#xff1a;摸到一叠牌&#xff0c;每次选择出最小的放在合适的位置&#xff08;第一次放在第一张&#xff0c;第二次放在第二张&#xff09;&#xff0c;实现排序 最好最坏都是 O&#xff08;n^2&#xff09; 插入排序&#xff1a;摸牌的时候一张一张摸&#xff0c;每…