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

news2024/9/9 0:36:50

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.old

4 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 ];then
        echo "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.coloradmin.cn/o/1958487.html

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

相关文章

windows下,pyrouge安装教程

1.安装perl 1.1 在命令行&#xff0c;检查perl是否安装 perl-v 1.2 安装perl 下载地址 Strawberry Perl for Windows - Releases 1&#xff09;下载msi版本 2&#xff09;双击安装包&#xff0c;傻瓜式安装&#xff0c;一路next&#xff0c;&#xff08;可修改安装路径&am…

Matlab编程资源库(16)数值微分

一、数值差分与差商 在Matlab中&#xff0c;数值差分与差商是数值分析中常用的概念&#xff0c;尤其在求解微分方程、插值、逼近等领域有广泛应用。下面简要介绍这两个概念及其在Matlab中的实现。 数值差分 数值差分是微分运算的离散化形式&#xff0c;用于近似求解导数。给定…

宠物浮毛空气净化器真的有用吗?性价比高的浮毛空气净化器推荐

作为一位5年资深铲屎官&#xff0c;随着养猫的家庭数量不断增加&#xff0c;轻松撸猫虽然很快乐。然而&#xff0c;宠物的存在也可能引发一些问题&#xff0c;比如宠物的体味和脱落的毛发&#xff0c;这些都可能成为影响家庭健康的隐患。特别是宠物排泄物的气味&#xff0c;如果…

C++11中的右值引用以及移动构造等

目录 一、右值引用 1.左值引用和右值引用 2.左值引用与右值引用比较 3.右值引用使用场景和意义 1️⃣ 传返回值 2️⃣ STL中的应用 4.完美转发 模板中的&& 万能引用&#xff08;引用折叠&#xff09; 二、 新的类功能 1.默认成员函数 2.类成员变量初始化 3.…

【找到字符串中所有字母异位词】python刷题记录

R2-滑动窗口篇 滑动窗口哈希表 和之前那道一样 http://t.csdnimg.cn/dpIbt class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:#返回字典记录了每个字符出现的次数counter1collections.Counter(p)#滑动窗口记录counter2即可ret[]num2len(s)num1len(p…

VIM基础配置

1. CTAGS配置 下载 上传虚拟机&#xff0c;解压&#xff0c;进入目录 tar -xzvf ctags-5.8.tar.gz cd ctags-5.8/编译 ./configure sudo make sudo make install查看是否安装成功 ctags --version打印如下 2. 使用Vundle 下载 git clone https://github.com/VundleVim/Vund…

如何将WordPress文章中的外链图片批量导入到本地

在使用采集软件进行内容创作时&#xff0c;很多文章中的图片都是远程链接&#xff0c;这不仅会导致前端加载速度慢&#xff0c;还会在微信小程序和抖音小程序中添加各种域名&#xff0c;造成管理上的麻烦。特别是遇到没有备案的外链&#xff0c;更是让人头疼。因此&#xff0c;…

2024下《系统架构设计师》案例简答题,刷这些就够了!

2024年软考下半年已经越来越近了&#xff0c;不知道今年备考架构的同学们准备得怎么样了呢&#xff1f; 简答题一直是架构拿分的重点区域&#xff0c;对于许多考生来说&#xff0c;也往往是最具挑战性的部分。今天我就把那些重要的案例简答题类型整理汇总给大家&#xff0c;希望…

C++选择题带答案

1&#xff0e;下列关于定义一个指向double型变量的指针&#xff0c;正确的是&#xff08; B &#xff09;。 A&#xff0e;int a(5)&#xff1b;double *pda&#xff1b; B&#xff0e;double d(2.5)&#xff0c;*pd&d&#xff1b; C&#xff0e;dou…

uniapp时间戳转时间

时间戳转时间 utils页面 function timestampToTime(time) { const date new Date(time); const year date.getFullYear(); const month String(date.getMonth() 1).padStart(2, 0); // 月份从0开始&#xff0c;所以要加1&#xff0c;并补齐0 const day String(date…

系统架构师考点--系统架构设计(下)

大家好。今天总结一下系统架构设计的最后一部分知识点。 一、软件系统的质量属性 软件系统的质量属性 软件系统的质量属性可分为开发期质量属性和运行期质量属性2个部分。 1、开发期质量属性主要指在软件开发阶段所关注的质量属性&#xff0c;主要包含6个方面&#xff1a; …

联想电脑怎么重装系统_联想电脑U盘重装win10详细图文教程

联想电脑怎么重装系统&#xff1f;在当今科技发展迅猛的时代&#xff0c;联想电脑已经成为了人们生活中不可或缺的一部分。然而&#xff0c;随着时间的推移&#xff0c;我们可能会遇到一些问题&#xff0c;例如系统崩溃或者需要更换操作系统。这时&#xff0c;使用U盘来重新安装…

57页PPT智慧水利数字孪生综合解决方案

实现“全局一盘棋”的智慧水利综合管理&#xff0c;关键在于整合水利大数据、数字孪生与人工智能技术&#xff0c;通过“一图、一库、一平台”的构建&#xff0c;为水利工作提供全面、科学、智能的管理和决策支持。以下是对这一目标的详细解读和实现路径&#xff1a; 知识星球…

C/C++进阶 (8)哈希表(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 本文着重于模拟实现哈希表&#xff0c;并非是哈希表的使用。 实现的哈希表的底层用的是线性探测法&#xff0c;并非是哈希桶。 目录 一、标准库中的哈希表 1、unordered_map 2、unordered_set 二、模…

【计算机毕设论文】基于SpringBoot线上学习平台的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等相…

「数组」实现动态数组的功能(C++)

概述 动态数组&#xff0c;顾名思议即可变长度的数组。数组这种数据结构的实现是在栈空间或堆空间申请一段连续的可操作区域。 实现可变长度的动态数组结构&#xff0c;应该有以下操作&#xff1a;申请一段足够长的空间&#xff0c;如果数据的存入导致空间已满&#xff0c;则…

CentOS7安装最新版vim;vim自动补齐配置

想练习一会vim&#xff0c;结果发现敲代码没有空号自动补齐和缩进很难受&#xff0c;所以想配置一下。 配置vim&#xff1a; 可以通过 vim ~/.vimrc 来给 vim 加启动的设定&#xff08;比如set nu&#xff0c;这样就会在每次启动的时候都加上行号。当然过程中可以在底行模式输…

基于SpringBoot+Vue的学生考勤管理系统(带1w+文档)

基于SpringBootVue的学生考勤管理系统(带1w文档) 系统为了数据库结构的灵活性选择MySQL来设计&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了系统开发背景&#xff0c;需要完成的功能与开发过程&#xff0c;说明系统设计重点与设计思想。…

如何在linux系统中用conda安装R环境及R包

一、miniconda3的安装不再赘述 二、安装R环境 1. 提前准备好conda的R单独环境 conda env list #查看已有环境 查看R的最新版本&#xff1a;r-project ##创建环境和激活环境 conda create -n R4.4.1 conda activate R4.4.1 备注&#xff1a;激活环境Linux&#xff0c;OS X…

企业如何保证公司内网安全

1. 加强网络安全防护 部署防火墙和入侵检测系统&#xff1a;作为内网安全的第一道防线&#xff0c;防火墙和入侵检测系统能够有效阻止外部攻击和恶意软件的入侵。 数据加密&#xff1a;采用先进的加密技术保护敏感数据&#xff0c;确保数据在传输和存储过程中的安全性。 访问…