当前位置: 首页 > news >正文

服务器部署,Nginx安装和配置

Nginx简介

Nginx是一款轻量级和高性能的web服务器、反向代理服务器和电子邮件代理服务器。你可以使用Nginx实现网页的部署,解决跨域问题实现邮件服务器,甚至Nginx也可以实现音视频推流拉流服务器,Nginx可以实现的功能远超你的想象,凭借着其轻量高效以及配置简单兼容性好等一系列优点,被各大网站、厂商部署服务器和网页使用。

就比如利用Nginx部署音视频服务器,我后面就会出一篇相关的博客

利用Nginx解决浏览器访问跨域问题已发布,详情地址:https://blog.csdn.net/weixin_64647426/article/details/137979439

Nginx是基于C语言开发的,如果对源码感兴趣可以去阅读一下,仓库地址:https://github.com/nginx/nginx

Nginx安装&配置

安装Nginx一般有两种方式,分别为源码编译安装和软件源安装

我们这里主要介绍使用软件源安装,这里是基于Ubuntu系统进行安装命令介绍

安装命令:sudo apt install nginx

安装成功后启动可以通过systemctl或者service命令进行启动

  • 启动Nginx:service nginx start

  • 停止Nginx:service nginx stop

  • 查看Nginx状态:service nginx status

本人第一次启动时曾出现的问题

第一次安装Nginx,然后使用service进行启动时,显示Failed to start ngixn.service: Unit ngixn.service not found.,不知道什么问题,但是执行sudo systemctl stop nginx.servicesudo systemctl start nginx.service这个之后service就好使了

安装就介绍完了,下面我们来介绍一下Nginx的配置

Nginx主要是基于配置文件来进行功能实现的,在Nginx的安装目录下(apt安装目录:/etc/nginx)存在着Nginx的配置文件nginx.conf,这里面是Nginx安装完后的基础配置,可以看到Nginx默认监听了80端口,我们也可以通过浏览器访问本机的IP地址,也可以看到Nginx的默认静态页面,如果看不到可以是Nginx没启动或者防火墙有拦截

Nginx的配置文件书写类型与键值对的形式,比如说用Nginx部署一个HTTP的链接,就是下面的配置方法

http {# ...配置项
}

下面说一下关于部署服务器一些常用的字段,最后我会给出Nginx简单部署web网页的例子供大家整合参考:

  • include字段

    该字段主要用于去引入一个配置文件,支持通配符的设定

    书写格式:

http {include [路径];
}
  • server字段

    该字段主要是囊括要监听的端口,以及当端口来消息时的处理方式,都需要在这个字段下书写

    书写格式:

http {server {# ...配置项}
}
  • listen字段

    该字段用于告诉Nginx要监听的端口

    书写格式:

http {server {listen 80;  # 监听80端口# ...配置项}
}
  • location字段

    该字段主要用于对HTTP链接URL的处理,可以在这里对指定的URL字段进行进一步的处理

    书写格式:

http {server {listen 80;  # 监听80端口location /api/ {# url为api时会进行下面的特殊处理,形如http://127.0.0.1:80/api/# ...配置项}# ...配置项}
}
  • root字段

    该字段用于指明,当前访问端口的web页面在服务器上存放位置的目录,通常配合index字段一起使用

    书写格式:

http {server {listen 80;  # 监听80端口location / {root /webfile/backdist;  # 指明web页面的路径# ...配置项}# ...配置项}
}
  • index字段

    该字段主要用于在web页面目录下面,指明页面访问的索引文件

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}# ...配置项}
}
  • proxy_pass字段

    该字段用于配置反向代理所有,可以用其解决浏览器端跨域的问题,如果你在某个location下配置了反向代理,则Nginx转发这个请求的时候会自动将与之相关的URL进行去除然后进行转发

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}location /api/ {proxy_pass http://127.0.0.1:9595/; # 反向代理到本地的9595端口}# ...配置项}
}
  • add_header字段

    该字段可以在http请求的应答包中添加指定的头部字段

    书写格式:

http {server {listen 80;  # 监听80端口location / {root  /webfile/backdist;  # 指明web页面的路径index index.html;         # 指明访问页面的索引文件# ...配置项}location /api/ {add_header 'Access-Control-Allow-Origin' '*';  # 书写格式:add_header ['参数名'] ['参数值'];add_header 'Access-Control-Allow-Headers' 'X-Requested-With';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';add_header 'Cache-Control' 'no-cache';proxy_pass http://127.0.0.1:9595/; # 反向代理到本地的9595端口}# ...配置项}
}

上面介绍了Nginx关于配置HTTP链接常用的字段,接下来我会给出一个完整的Nginx配置文件方便大家参考学习

nginx.conf配置文件

user root;
worker_processes  auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {worker_connections  768;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;sendfile       on;tcp_nopush     on;types_hash_max_size	2048;gzip  on;# 配置图片资源请求端口server {listen	 90;server_name	 0.0.0.0;location /image/ {alias /var/www/example/img/;autoindex on;}}include website/*.conf;  # 引入web网页配置文件
}

./website/web.conf配置文件

server {listen               80;error_page           404 /index.html;client_max_body_size 100m;include              mime.types;default_type         application/octet-stream;sendfile	           on;keepalive_timeout	   65;location / {root      /root/projects/web/pingweidist; # 前端代码文件位置index     index.html;try_files $uri $uri/ /index.html; # 解决vue刷新404的问题}# 解决请求访问跨域问题location /api/ {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Headers' 'X-Requested-With';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';add_header 'Cache-Control' 'no-cache';if ($request_method = 'OPTIONS') {return 200;}proxy_pass http://127.0.0.1:9595/; # 反向代理}# 解决图片资源访问跨域问题location /imageApi/ {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Headers' 'X-Requested-With';add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';add_header 'Cache-Control' 'no-cache';if ($request_method = 'OPTIONS') {return 200;}proxy_pass http://127.0.0.1:90/; # 反向代理}
}

到这里Nginx的安装和配置就介绍完了,注意本篇文章只是对Nginx的使用进行了初步的介绍,如果大家想获取某一部分更加详细的配置介绍,可以有针对性的查询或者查看官方资料进行了解

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!

相关文章:

服务器部署,Nginx安装和配置

Nginx简介 Nginx是一款轻量级和高性能的web服务器、反向代理服务器和电子邮件代理服务器。你可以使用Nginx实现网页的部署,解决跨域问题实现邮件服务器,甚至Nginx也可以实现音视频推流拉流服务器,Nginx可以实现的功能远超你的想象&#xff0…...

Java后端接口调用拦截处理:注解与拦截器的实现

在Java开发中,对后端接口调用进行拦截处理是一种常见的需求,通常用于权限验证、Token校验、状态更新等操作。本文将围绕 Spring框架的拦截器(Interceptor)、Spring AOP(面向切面编程) 和 Spring Security 三…...

C++(初阶)(十四)——多态

多态 面向对象的其中一大特征。 多态多态的定义及构成多态的构成条件多态的实现条件多态的分类编译时多态性运行时的多态性 虚函数定义不能成为虚函数的函数 虚函数重写(覆盖)选择题虚函数重写的其他问题析构函数的重写override 和final关键字重载/重写…...

PyQt6基础_QThread

目录 前置 代码: 运行 正常运行 QThread运行报错 视频 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文档 2 长时间任务可以放到QThread中执行,避免占用主线程导致界面卡顿无法操作 代码: import traceback,sys fro…...

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中,EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而,随着工业互联网的发展,对于数据的远程访问和云平台集成的需求日益增长,这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…...

vite创建vue3项目并进行配置

创建项目 方式一 执行以下命令 之后输入项目名称 选择框架 选择语言 例如 pnpm create vite此方式创建的项目较为干净 0手起步 只包含一些基础依赖 例如vue vite等 项目目录如下 "scripts": {"dev": "vite","build": "vue-tsc -…...

LeetCode 热题 100_最小路径和(92_64_中等_C++)(多维动态规划)

LeetCode 热题 100_最小路径和(92_64) 题目描述:输入输出样例:题解:解题思路:思路一(多维动态规划): 代码实现代码实现(思路一(多维动态规划&…...

关于常量指针和指向常量的指针

关于指针,对于常量指针和指向常量的指针也是傻傻分不清。看到定义时,不知道是指针不能变,还是指针指向的内容不能变量。 先看形式: const char * A; char * const B; 这两种有什么区别?傻傻分不清。 A这种定义&am…...

新时代下的存储过程开发实践与优化

随着现代应用系统的复杂度不断增加,数据库作为核心的数据存储和处理引擎,其性能和可靠性显得尤为重要。存储过程(Stored Procedure)作为一种封装在数据库中的应用逻辑,使得开发者能够在数据库层面实现数据操作、数据校…...

4月28日日记

2025年4月28日 星期一 晴 今天过得格外充实,也充满了收获与喜悦。 下午,我参加了学校的五四述职大会。各个学院的团委书记依次上台,汇报过去一年的工作成果。看着大家在台上分享着各自学院的精彩故事,我深受触动。他们所展示的活…...

大模型性能测试

当我们部署了大模型并对外提供服务时,我们通常都想了解一下大模型能够支持多少个并发访问,在不同的并发数下,模型的性能如何。了解这些信息有助于我们更好的对算力进行评估,为用户带来更好的性能体验。 大模型通常是通过API接口的…...

利用 Google Earth Engine 探索江宁区 2010 - 2020 年 EVI 时空变化

引言 增强型植被指数(Enhanced Vegetation Index,EVI)是一种用于量化植被生长状态和覆盖程度的重要指标,它在监测植被动态、生态环境评估以及气候变化研究等领域发挥着关键作用。Google Earth Engine(GEE)…...

IEC 61850标准协议解读 2.基于Java的MMS实现

专栏文章目录 第一章 IEC 61850标准协议解读 0.导言 第二章 IEC 61850标准协议解读 1.建模讲解 第三章 IEC 61850标准协议解读 2.基于Java的MMS实现 目录 专栏文章目录前言1 依赖库引入2 创建服务端3 创建客户端4 读写模型4.1 服务端读写4.2 客户端读写 5.报告6 文件服务6.1 读…...

花费7元训练自己的GPT 2模型

在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前…...

【android bluetooth 协议分析 06】【l2cap详解 10】【通过avdtp连接流程,感受l2cap通道的生命周期变化】

本篇我们通过分析一个具体的实例,来直观感受一下 l2cap 中通道的 状态变化。 1. 环境描述: 车机: a2dp sink手机: a2dp source场景: 手机主动 触发 连车机 声明一下: 分析的btsnoop 和 logcat 还有源码,…...

如何在idea中写spark程序。

要在IntelliJ IDEA中编写Spark程序,你可以按照以下步骤进行: 1. 安装和配置Java:确保你的计算机上已经安装了Java Development Kit (JDK),并且已配置好 JAVA_HOME 环境变量。 2. 安装IntelliJ IDEA:下载并安装Inte…...

Pytest-mark使用详解(跳过、标记、参数 化)

1.前言 在工作中我们经常使用pytest.mark.XXXX进行装饰器修饰,后面的XXX的不同,在pytest中有不同的作 用,其整体使用相对复杂,我们单独将其抽取出来做详细的讲解。 2.pytest.mark.skip()/skipif()跳过用例 import pytest #无条…...

[Android] GKD v1.10.3

[Android] GKD 链接:https://pan.xunlei.com/s/VOOwKvmwpLoLl7fLi6wJZKK-A1?pwd8mey# GKD(详情请戳 作者项目地址)是一款免费开源简洁多规则的自动跳过广告的软件,整体基于kotlin开发,免root即可使用。简而言之&am…...

C22-作业练习之最大公约数与最小公倍数

作业练习之最大公约数与最小公倍数 代码 #include <stdio.h> int main() {//变量初始化int m,n;int i,gcd,lcm;//数据录入printf("请输入两个整数:");scanf("%d %d",&m,&n);//求最大公约数int min(m<n)?m:n; //找m与n的最小值for(imi…...

信号完整性简介第一篇

本章将讲述信号完整性相关问题。首先提出什么是高速系统设计中的信号完整性&#xff0c;其次结合影响信号完整性的各种因素&#xff0c;深入讨论在高速系统设计过程中会碰到的几类信号完整性问题&#xff0c;并对每一类问题提出相应的预防措施和解决方案。 需要说明&#xff0…...

Qt开发环境的安装与问题的解决(2)

文章目录 1. Qt开发环境安装的说明2. 通过安装包进行安装3. 通过在线下载程序 解决问题下载 https....网路错误问题解决开始安装--第一部分开始安装--第二部分 4. 建议配置环境变量&#xff08;非必须&#xff09;配置环境变量的意义 简介&#xff1a;这篇文章主要分享Qt开发环…...

STM32 ADC模数转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁12位逐次逼近型ADC&#xff0c;1us转换时间 输入电压范围&#xff1a;0~3.3V&#x…...

World of Warcraft [CLASSIC] Hunter[Grandel] R12

World of Warcraft [CLASSIC] Hunter[Grandel] R12 R13&#xff0c;[Freeblue] 可惜当时没有截图&#xff0c;唉&#xff0c;没有纪念 --- 挂机脚本...

kalibr:相机模型

文章目录 📚简介Kalibr标定支持的相机模型及适用场景📌 针孔相机模型(Pinhole)🌐 全向相机模型(Omnidirectional)🔍 特殊模型💡 选型建议⚠️ 注意事项📚简介 Kalibr作为多传感器标定的重要工具,支持多种相机模型以适应不同光学特性的视觉传感器。其核心相机…...

【AI News | 20250428】每日AI进展

AI Repos 1、dyad Dyad 是一款免费开源的本地化 AI 应用开发工具&#xff0c;兼容 Windows 和 Mac 双平台。支持使用自有 API 密钥灵活调用主流 AI 模型&#xff08;包括 Gemini、GPT-4.1、Claude 等&#xff09;&#xff0c;内置数据库与身份验证系统可快速构建完整应用。 …...

DNS区域的类型

在BIND9中&#xff0c;type 用于定义DNS区域的类型&#xff0c;不同的类型决定了BIND如何处理该区域的DNS数据。以下是主要的类型及其作用详解&#xff1a; 1. master&#xff08;主区域&#xff09; 作用&#xff1a; 表示该区域是权威DNS服务器的主副本&#xff0c;负责存储…...

​​HTTP vs HTTPS:传输协议的安全演进与核心差异​

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;作为两种最常用的协议&#xff0c;其安全性和实现方式直接关系到用户隐私和数据完整性。 目录 ​​一、HTTP与HTTPS的基础概念​​ ​​二、HTTP与HTTPS的核心差异​​ ​…...

Android平台Unity引擎的Mono JIT机制分析

一、分析背景 Unity引擎开发游戏采用了C#语言,Unity采用了Mono的Jit机制实现C#逻辑代码动态编译和执行,Mono属于开源的工程,可通过查看Mono源码了解其中的处理。本文针对Mono的Jit动态编译和执行的机制进行分析,更好的了解Unity引擎在Android平台所采用的处理方式。 二、M…...

【java】接口

一、定义 1.接口中所有方法都是抽象方法和公共方法&#xff08;可以省略 abstract、public&#xff09;&#xff0c;不可以有正常的方法&#xff0c;所有变量都是全局静态常量 2.能继承接口的只能是接口 3.接口和类的关系通过实现&#xff08;重写&#xff08;实现&#xff09;…...

Vuex(二) —— 用Vuex完成购物车案例

目录 需求需求分析 组件分析组件通信 开发 准备环境准备模块结构商品列表组件 展示商品列表添加购物车 我的购物车组件 购物车列表商品数量和统计功能删除购物车商品 购物车列表组件 购物车列表全选操作数字加减并统计小计删除功能统计总数量和总钱数处理金额小数的问题 本地存…...

数字孪生的浪潮:从虚拟镜像到现实世界的 IT 变革

文章目录 数字孪生的本质&#xff1a;物理与虚拟的实时镜像数字孪生的演进&#xff1a;从工业试验到全行业热潮核心技术&#xff1a;数字孪生的基石与工具链物联网&#xff08;IoT&#xff09;&#xff1a;数据采集云计算与大数据&#xff1a;模型存储AI 与机器学习&#xff1a…...

Web开发之三层架构

实例&#xff1a; 分层解耦 耦合:衡量软件中各个层/各个模块的依赖关联程度。 内聚:软件中各个功能模块内部的功能联系。 软件设计原则:高内聚低耦合 控制反转:Inversion 0f Control&#xff0c;简称IQC。对象的创建控制权由程序自身转移到外部(容器)&#xff0c;这种思想称为…...

社交电商和泛娱乐平台出海南美市场支付方式与策略

随着中国社交电商和泛娱乐平台加速全球化布局,南美市场凭借庞大的人口基数、快速增长的互联网渗透率和活跃的社交媒体使用率,成为出海企业的重要战略要地。然而,这片"新蓝海"的支付生态复杂多元,信用卡欺诈率高企,现金支付仍占主导,不同国家支付偏好差异显著。…...

Miniconda Windows10版本下载和安装

Miniconda Windows10版本下载和安装 步骤1&#xff1a;Miniconda3下载和安装 # 1、下载地址&#xff08;Windows 64位&#xff09; https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe #2、双击进行安装 # 安装注意事项&#xff1a; 1. 安装路径建议&a…...

编译原理:由浅入深从语法树到文法类型

文法与语言基础&#xff1a;从语法树到文法类型 文法&#xff08;Grammar&#xff09;和语言&#xff08;Language&#xff09;是计算机科学和语言学中解析和理解语言结构的核心概念。无论是编程语言的编译器设计&#xff0c;还是自然语言处理&#xff08;NLP&#xff09;中的…...

初识Python

哈哈哈&#xff0c;为了让初学者对python进一步了解&#xff0c;懒惰的博主特地去问了AI&#xff0c;如何更加形象的形容python这一么语言 &#x1f31f; Python 是什么&#xff1f; 想象一下&#xff0c;编程语言是一群性格各异的人&#xff1a; C语言&#xff1a;穿格子衫的…...

C++ —— 正向迭代器与反向迭代器

目录 1. 正向迭代器&#xff08;Forward Iterator&#xff09; 1.1 基本概念 1.2 核心特性 1.3 典型使用 1.4 重要特点 2. 反向迭代器&#xff08;Reverse Iterator&#xff09; 2.1 基本概念 2.2 核心特性 2.3 典型使用 2.4 重要特点 3. 正反迭代器对比 4. 正反迭代…...

FDA会议类型总结

1. 会议类型及目的 1.1 Type A会议 1.1.1 争议解决会议 用于解决药物研发过程中与FDA产生的争议,明确双方分歧点。 通过讨论达成共识,避免因争议影响研发进度。 1.1.2 临床保留讨论会议 针对临床试验中出现的问题进行讨论,决定是否保留临床试验。 综合评估临床试验的安全性…...

数据结构算法竞赛训练网站OJ(Online Judge)

都是个人使用过的算法训练OJ&#xff0c;存个档 洛谷 https://www.luogu.org/ 个人使用最多的&#xff0c;题目较全&#xff0c;每题都有题解博客&#xff0c;社区比较完善。 PTA https://pintia.cn/ 学习数据结构和练习天梯赛的时候使用的。 牛客 https://ac.nowcoder.co…...

快速搭建对象存储服务 - Minio,并解决临时地址暴露ip、短链接请求改变浏览器地址等问题

本文要解决的问题 基础的Minio下载安装、java操作方法、完整的工具类。 使用minio时需要注意的地方&#xff1a; 使用Minio的时候&#xff0c;生成资源的临时访问链接时&#xff0c;生成的地址IP是真实的IP和端口&#xff0c;不安全&#xff0c;怎么办&#xff1f; 生成的Min…...

2025年- H11-Lc118-53.最大子数组和(普通数组)---java版

1.题目描述 2.思路 用动态规划方法来解决【最大子数组和】&#xff08;Maximum Subarray&#xff09;问题。 pre&#xff08;当前位置最大和&#xff09;、 maxAns&#xff08;全局最大和&#xff09; 3.代码实现 class H53 {public int maxSubArray(int[] nums) {int curr…...

基于蓝牙Beacon人员导航方案

基于蓝牙Beacon人员导航方案 一、室内定位市场痛点与技术选择 大型商场&#xff08;单层超2万㎡&#xff09;和医院&#xff08;科室超200个&#xff09;的复杂空间中&#xff0c;传统GPS信号衰减超90%&#xff0c;用户平均寻路耗时10-15分钟&#xff0c;30%购物决策因“找店…...

mysql模糊多次OR查询某一个字段,针对这个字段进行查询分组

一. 需求 有一个mysql表t_test,有两个字段className和studentStr 其中studentStr会用来模糊查询 假如现在有6条数据 1.studentStr字段数据:“小明,小红,小同,小芳,小特,小兰” 2.studentStr字段数据:“小明,小红,小同” 3.studentStr字段数据:“小芳,小特,小兰” 4.stud…...

OpenGL进阶系列21 - OpenGL SuperBible - blendmatrix 例子学习

一:概述 颜色输出阶段是 OpenGL 渲染管线中最后一个阶段。它决定了片段在离开片段着色器之后,最终显示在用户屏幕上的颜色值。颜色输出阶段最重要的一个操作就是混合。本例子重点介绍下OpenGL中的混合操作。 对于每个通过片段测试(per-fragment tests)的片段,会执行混合操…...

阿里语音处理工具ClearerVoice-Studio项目上手指南

ClearerVoice-Studio:开源语音处理全能工具箱 🚀 核心功能速览 语音增强:消除环境噪声(支持16kHz/48kHz)语音分离:多人对话场景的说话人分离(8kHz/16kHz)超分辨率:16kHz→48kHz音质提升目标说话人提取:基于人脸/手势/EEG的多模态提取语音质量评估:9种客观评价指标A…...

31、简要描述Promise.all的用途

Promise.all 是 JavaScript 中用于处理多个异步操作的核心方法&#xff0c;其核心用途是并行聚合多个 Promise 的结果&#xff0c;并在所有操作成功时统一返回结果数组。以下是其关键特性与典型应用场景的简要描述&#xff1a; 核心功能 1、并行执行 接收一个 Promise 数组&…...

OpenVLA-OFT

TL;DR 2025 年斯坦福提出的 OpenVLA 工作的续作 OpenVLA-OFT&#xff0c;优化 VLA 能够有效适应新的机器人平台和任务&#xff0c;优化的技术主要有并行解码、动作块处理、连续动作、L1 回归和&#xff08;可选的&#xff09;FiLM 语言调节 Paper name Fine-Tuning Vision-La…...

2025“钉耙编程”中国大学生算法设计春季联赛(8)10031007

题目的意思很好理解找从最左边到最右边最短路&#xff08;BFS&#xff09; #include <bits/stdc.h> using namespace std; int a[510][510]; // 存储网格中每个位置是否有障碍&#xff08;1表示有障碍&#xff0c;0表示无障碍&#xff09; int v[510][510]; // 记录每…...

代码随想录算法训练营第六十一天 | floyd算法

Floyd 算法精讲 题目链接&#xff1a;97. 小明逛公园 文章讲解&#xff1a;代码随想录 思想&#xff1a;本题是多源最短路&#xff0c;即求多个起点到多个终点的多条最短路径。用Floyd 算法。 Floyd 算法对边的权值正负没有要求&#xff0c;都可以处理&#xff0c;Floyd算法…...

[三分钟]web自动化测试(三):selenium自动化测试常用函数(下)

文章目录 4.等待4.1 强制等待4.2 隐式等待4.3 显式等待 5.浏览器导航5.1 浏览器的前进、后退、刷新5.2 打开网站 6. 弹窗6.1 确认和取消6.2 输入信息 7. 文件上传 4.等待 如果页面渲染的速度赶不上代码执行的速度&#xff0c;可能会因为渲染过慢出现自动化误报的问题。 此时可…...