2024年7月29日(web nginx)

news2024/9/17 7:08:56

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



 

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

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

相关文章

Linux基础复习(五)

前言 本文介绍了Linux常用命令,接Linux基础复习(四) 一、常用命令 命令通配符 在Linux中,命令通配符(也称为通配符模式或通配符表达式)是用来匹配文件名或其他字符串的一种特殊字符。这些通配符可以帮助…

leetcode日记(61)矩阵置零

看起来很简单的题目,最简单粗暴的方法是建立两个数组记录需要置零的行和列,但是题目中有一个进阶版要求: 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O…

VC14(VC2015)安装失败报错0x80240017

百度网盘链接:https://pan.baidu.com/s/1ybBriAXfxtvLvk7ve2zwIg?pwd1111 提取码:1111 必须按以下顺序安装: clearcompressionflag.exe、KB2919355、KB2932046、KB2959977、KB2937592、KB2938439、KB2934018。 KB2919442 是 Windows 8.1 更…

【根据字符出现频率排序】python刷题记录

R2-字符串算法 包哈希表的呀。 注意 class Solution:def frequencySort(self, s: str) -> str:dictdefaultdict(list)#字符串不能直接排序,需要转换为列表["a","b","c"]slist(s)for str in s:if not dict[str]:dict[str]1else:…

扫码登录方案

以哔哩哔哩扫码登录为例 二维码解码后内容为:https://passport.bilibili.com/h5-app/passport/login/scan?navhide1&qrcode_keye60869ce7f5235c7123175a7effc6f90&frommain-fe-header 扫码登陆,利用已登录设备授权未登录设备登录的方式 扫码…

android settings提示音开关状态与修改(一)

android系统&#xff0c;settings提示音类型&#xff1a; 提示音开关默认状态&#xff0c;定义文件&#xff1a; frameworks/base/packages/SettingsProvider/res/values/defaults.xml 提示音默认定义&#xff1a; // 锁屏提示音 <integer name"def_lockscreen_sounds_…

前端canvas——贝塞尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期贝塞尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…

知识图谱增强的RAG(KG-RAG)详细解析

转自&#xff1a;知识图谱科技 这是一个与任务无关的框架&#xff0c;它将知识图谱&#xff08;KG&#xff09;的显性知识与大型语言模型&#xff08;LLM&#xff09;的隐含知识结合起来。这是该工作的arXiv预印本 https://arxiv.org/abs/2311.17330 。 我们在这里利用一个名为…

DP的优化途径---单调队列

1.前缀和单调队列&#xff1a;https://www.acwing.com/problem/content/137/ 我们先预处理下前缀和&#xff0c;以下标为i的点为有边界&#xff1a; 也就是求()的min&#xff0c;考虑到j的范围是定值&#xff0c;用单调队列维护即可。 AC代码&#xff1a; #include<bits/…

家具缓冲器:提升家居体验的得力助手

在家具和工业设备的设计与制造中&#xff0c;钢珠滑轨缓冲器的安装与否一直是一个备受争议的话题。钢珠滑轨缓冲器作为一种能够减少冲击和噪音的装置&#xff0c;其存在具的价值&#xff0c;但也并非在所有情况下是必需的。首先&#xff0c;从功能和使用体验的角度来看&#xf…

【C++题解】1581. 马里奥的银币1

问题&#xff1a;1581. 马里奥的银币1 类型&#xff1a;数组找数 题目描述&#xff1a; 马里奥有很多银币&#xff0c;有一天他得到了一张魔法卡&#xff0c;只要使用这张魔法卡&#xff0c;就可以使得他的银币里面的最大的银币金额变得更大。如果他最大的银币是偶数的金额&a…

【Vue3】watchEffect

【Vue3】watchEffect 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文…

001.精读《Big Data: A Survey》

文章目录 1. 引言2. 精读2.1 摘要2.2 背景2.4 相关技术2.5 相关流程2.6 应用场景 3. 总结 1. 引言 大数据精读周刊首次与大家正式见面。我们每周将精读并分析几篇精选文章&#xff0c;试图讨论并得出结论性观点。我们的目标是通过深入探讨&#xff0c;帮助大家更好地理解大数据…

力扣高频SQL 50题(基础版)第二十五题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十五题619.只出现一次的最大数字题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十五题 619.只出现一次的最大数字 题目说明 MyNumbers 表&#xff1a; ------…

Qt,获取其他.exe文件的标准输出流的信息(printf/print的输出信息)

比如&#xff0c;通过Python编写爬虫软件功能是运行程序获取豆瓣电影排行榜信息&#xff0c;并通过print打印出来。将其打包成.exe,通过Qt来调用&#xff0c;并获取到.exe程序运行的结果 简单示例代码&#xff1a; // 创建 QProcess 对象QProcess process;// 连接信号槽以获取…

java计算器,输入公式和对应变量的值

目标&#xff1a;最近想写个东西&#xff0c;本质就是一个计算器&#xff0c;我们可以输入公式&#xff08;例如&#xff1a;ab&#xff09;&#xff0c;然后把公式的值&#xff08;a:10,b:20&#xff09;也输入进去。最后得到结果。核心&#xff1a;这个想法核心部分就是给一个…

Git远程仓库推送

这里我只连接了两个站点的远程仓库&#xff0c;一个是国内的Gitee&#xff0c;另一个是Github&#xff0c;这两个站点的连接方式主要有两种&#xff0c;第一种就是通过https来连接远程仓库&#xff0c;另一种是通过ssh公钥来连接&#xff0c;这两个站点练接的大致过程都是一样的…

接口测试支持IDEA插件一键同步API、新增思维导图快速评审测试用例,MeterSphere开源持续测试工具v3.1.0版本发布

2024年7月29日&#xff0c;MeterSphere开源持续测试工具正式发布v3.1.0版本。 在这一版本中&#xff0c;接口测试方面&#xff0c;支持通过IDEA插件一键同步API至MeterSphere&#xff1b;测试管理方面&#xff0c;“测试用例”模块新增通过思维导图模式快捷评审测试用例。在“…

【SpringCloud】Nacos配置管理和Feign远程调用

Nacos配置管理和Feign远程调用 Nacos一方面可以将配置集中管理&#xff0c;另一方可以在配置变更时&#xff0c;及时通知微服务&#xff0c;实现配置的热更新。 一、Nacos配置管理 1. 统一配置管理 1.1.在Nacos中添加配置文件 注&#xff1a;项目的核心配置&#xff0c;需…

如何在Net8.0平台下开发AOT项目,项目实战分析

1. 前言 前面的文章我们讨论过什么是AOT&#xff0c;以及AOT适用于什么场景&#xff0c; dotnet开发编译之争&#xff1a;Ahead-of-Time(AOT) vs Just-in-Time(JIT)谁才是未来最佳编译选择&#xff1f;&#xff0c;那么如何在Net8.0平台下开发AOT项目。 2. 先决条件 在安装的…