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

【指令集】Nginx

img

本文作者: slience_me


【指令集】Nginx


1. 目录结构

Nginx 的基础目录结构通常包括以下几个主要目录:

Nginx的目录结构大致如下(以Linux系统为例):

/etc/nginx/                 # Nginx的配置文件目录
├── nginx.conf              # 主配置文件
├── conf.d/                 # 包含额外配置文件的目录
│   └── default.conf        # 默认虚拟主机配置文件
├── sites-available/        # 存放可用站点的配置文件(某些系统上可能没有此目录)
├── sites-enabled/          # 启用的站点配置文件(某些系统上可能没有此目录)
├── mime.types              # MIME类型配置文件
├── fastcgi_params          # FastCGI参数配置
├── uwsgi_params            # uWSGI参数配置
└── scgi_params             # SCGI参数配置/usr/local/nginx/           # Nginx的默认安装目录
├── sbin/                   # 可执行文件目录(包含nginx二进制文件)
│   └── nginx               # Nginx主程序
├── html/                   # 默认的网页根目录
│   └── index.html          # 默认的欢迎页面
├── logs/                   # 日志目录
│   ├── access.log          # 访问日志
│   └── error.log           # 错误日志
└── conf/                   # 配置文件目录(有时可以与/etc/nginx合并)

主要目录和文件:

  • /etc/nginx/nginx.conf:主配置文件,控制Nginx的全局设置。
  • /etc/nginx/conf.d/:通常存放额外的虚拟主机配置文件,可以分配单独的文件来管理不同站点的配置。
  • /etc/nginx/sites-available//etc/nginx/sites-enabled/:用于存储和启用站点的配置文件,常见于Ubuntu/Debian系统。sites-available存放所有配置文件,而sites-enabled存放实际启用的配置链接。
  • /usr/local/nginx/html/:默认的网页文件目录,可以存放网站的静态文件,如HTML、CSS和JavaScript等。
  • /usr/local/nginx/logs/:存放Nginx的日志文件,通常包括访问日志和错误日志。

你可以根据自己的实际需求定制这些目录和配置文件。

2. 系统级安装【Ubuntu】

2.1 更新系统包索引

sudo apt update

2.2 安装 Nginx

sudo apt install nginx

安装完成后,Nginx 会自动启动。如果没有启动,可以手动启动它:

sudo systemctl start nginx

检查 Nginx 的状态:

sudo systemctl status nginx

2.3 查找 Nginx 配置文件

Nginx 配置文件通常位于以下几个位置:

  • 主配置文件:/etc/nginx/nginx.conf
  • 默认虚拟主机配置:/etc/nginx/sites-available/default
  • 虚拟主机配置目录:/etc/nginx/sites-available//etc/nginx/sites-enabled/
  • 日志文件:
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log

查看主配置文件:

sudo nano /etc/nginx/nginx.conf

查看虚拟主机配置:

sudo nano /etc/nginx/sites-available/default

如果你有多个网站需要配置,可以创建新的配置文件,并通过符号链接激活它:

sudo ln -s /etc/nginx/sites-available/your-site.conf /etc/nginx/sites-enabled/

2.4 测试配置文件的语法

每次修改配置文件后,先检查 Nginx 配置文件的语法是否正确:

sudo nginx -t

如果没有错误,输出应该是:

nginx: configuration file /etc/nginx/nginx.conf test is successful

2.5 重新加载 Nginx 配置

在确认配置文件没有语法错误后,重新加载 Nginx,使配置生效:

sudo systemctl reload nginx

2.6 常见配置修改

  • 设置服务器根目录:
server {listen 80;server_name example.com;root /var/www/html;index index.html;location / {try_files $uri $uri/ =404;}
}
  • 修改监听端口:
server {listen 8080;server_name example.com;root /var/www/html;
}
  • 配置反向代理:
server {listen 80;server_name example.com;location / {proxy_pass http://localhost:3000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

2.7 设置防火墙允许 HTTP 和 HTTPS 流量

如果你正在使用 ufw 防火墙,确保允许 HTTP 和 HTTPS 流量:

sudo ufw allow 'Nginx Full'

2.8 检查 Nginx 是否正常运行

通过浏览器访问服务器的 IP 地址或域名,应该能看到 Nginx 默认的欢迎页面:

http://your_server_ip

如果看到页面,说明 Nginx 正常运行。

3. 个性化

要自定义不同站点的配置文件路径,并将其放在用户目录或根目录下(例如 /mysite/),而不是直接操作 /etc/nginx//usr/local/nginx/,你可以通过以下步骤来实现:

3.1 修改 Nginx 配置文件

你需要调整 Nginx 主配置文件 nginx.conf 来指定新的配置文件路径。具体来说,在 http 块中使用 include 指令来加载你的自定义路径下的配置文件。

假设你希望将站点配置文件存放在 /mysite/nginx-sites/,那么在 nginx.conf 中添加如下内容:

http {...include /mysite/nginx-sites/*.conf;...
}

这会告诉 Nginx 在启动时加载 /mysite/nginx-sites/ 目录下所有 .conf 后缀的配置文件。

3.2 创建并管理自定义站点配置

/mysite/nginx-sites/ 目录下创建每个站点的配置文件。例如:

/mysite/nginx-sites/
├── site1.conf
├── site2.conf
└── site3.conf

每个 .conf 文件中可以包含你要为特定站点设置的 Nginx 配置,比如 server 块和其他必要的指令。

例如,site1.conf 可能是这样的:

server {listen 80;server_name www.site1.com;root /mysite/www/site1;location / {try_files $uri $uri/ =404;}
}

3.3 设置权限(可选)

确保 /mysite/nginx-sites/ 目录及其中的配置文件有适当的权限,以确保 Nginx 进程能够读取它们。例如:

sudo chown -R nginx:nginx /mysite/nginx-sites/
sudo chmod -R 755 /mysite/nginx-sites/

3.4 配置文件组织(可选)

你可以进一步组织你的配置文件,如使用 sites-availablesites-enabled 目录结构:

/mysite/nginx-sites/
├── sites-available/
│   ├── site1.conf
│   └── site2.conf
└── sites-enabled/├── site1.conf -> ../sites-available/site1.conf└── site2.conf -> ../sites-available/site2.conf

然后在 nginx.conf 中改为加载 sites-enabled 目录中的配置:

http {...include /mysite/nginx-sites/sites-enabled/*.conf;...
}

这种方式与传统的 /etc/nginx/sites-available//etc/nginx/sites-enabled/ 方法类似。

3.5 重启 Nginx 使配置生效

完成修改后,记得重新加载或重启 Nginx:

sudo nginx -t       # 检查配置是否有误
sudo systemctl reload nginx   # 重新加载配置

4. 用户级安装

如果你没有系统级安装 Nginx 的权限,但仍然希望在用户目录中运行自定义的 Nginx 实例,你可以通过以下步骤来实现:

4.1 在用户目录安装 Nginx

首先,你可以在用户目录下手动下载并编译 Nginx,确保你有权限在自己的用户目录中进行安装和配置。

步骤:

  1. 下载 Nginx 源代码

    wget http://nginx.org/download/nginx-1.24.0.tar.gz
    tar -zxvf nginx-1.24.0.tar.gz
    cd nginx-1.24.0
    
  2. 编译并安装到用户目录: 你可以指定安装路径为你的用户目录(例如 ~/nginx):

    ./configure --prefix=$HOME/nginx
    make
    make install
    
  3. 安装完成后,你将在 ~/nginx/ 目录下找到所有相关的文件和目录。此时,你可以直接在 ~/nginx/ 下运行 Nginx,而无需系统级的权限。

4.2 配置 Nginx 使用自定义的站点路径

假设你已经在 ~/nginx 目录下安装了 Nginx,现在你可以按照自定义路径来配置你的站点。

修改 Nginx 配置文件:

Nginx 的配置文件通常位于 ~/nginx/conf/nginx.conf。你可以打开这个文件,并根据你的需求进行修改:

  1. 修改站点配置路径:例如,将站点配置文件放在 ~/mysite/nginx-sites/ 目录下,并在 nginx.conf 中使用 include 指令来加载它们:

    http {...include ~/mysite/nginx-sites/*.conf;...
    }
    
  2. 配置站点文件:在 ~/mysite/nginx-sites/ 目录下创建站点配置文件。例如,site1.conf

    server {listen 80;server_name www.site1.com;root ~/mysite/www/site1;location / {try_files $uri $uri/ =404;}
    }
    
  3. 确保站点根目录存在并配置好,比如 ~/mysite/www/site1 目录。

4.3 启动 Nginx

由于你没有系统级的权限,使用自定义安装的 Nginx 来启动和管理 Nginx 服务:

  1. 启动 Nginx

    ~/nginx/sbin/nginx
    
  2. 检查 Nginx 状态: 你可以使用 pstop 来确认 Nginx 是否正在运行:

    ps aux | grep nginx
    
  3. 停止 Nginx: 如果需要停止 Nginx,可以使用以下命令:

    ~/nginx/sbin/nginx -s stop
    
  4. 重新加载配置: 如果修改了配置文件,需要重新加载 Nginx:

    ~/nginx/sbin/nginx -s reload
    

4.4 权限设置

由于你没有系统级权限,确保所有相关目录(如 ~/nginx, ~/mysite 等)的权限正确,并且你有访问和写入的权限。

5. 部署 Vue 项目

将 Vue 项目部署到 Nginx 时,通常需要将其构建为静态文件,并配置 Nginx 提供这些文件。以下是部署步骤:

5.1 配置 Nginx

假设 Vue 项目的构建文件位于 /var/www/vue_project/dist 目录。

  1. 打开 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/vue_project
  1. 编辑配置文件,设置 Nginx 提供静态文件:
server {listen 8080;  # 监听 8080 端口server_name example.com;  # 配置你的域名,或者使用 IP 或 localhostroot /var/www/vue_project/dist;  # Vue 项目构建文件所在目录index index.html;  # 默认首页location / {try_files $uri $uri/ /index.html;  # 支持 Vue 的 SPA 路由}# 如果有后端 API,需要配置反向代理location /api {proxy_pass http://localhost:3000;  # 反向代理到后端 APIproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}# 禁止访问某些文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) {return 404;}
}
  • listen 8080;:指定 Nginx 监听 8080 端口。
  • root /var/www/vue_project/dist;:指定 Vue 项目的构建目录。
  • try_files $uri $uri/ /index.html;:支持 Vue 项目的前端路由,将所有请求重定向到 index.html,让 Vue Router 处理路由。

5.2 启用配置

创建符号链接并启用新配置:

sudo ln -s /etc/nginx/sites-available/vue_project /etc/nginx/sites-enabled/

5.3 检查配置并重启 Nginx

确保 Nginx 配置正确:

sudo nginx -t  # syntax is okay | test is successful

重启 Nginx:

sudo systemctl reload nginx

5.4 访问应用

现在可以在浏览器中访问 http://your_server_ip:8080,查看 Vue 应用。

5.5 配置防火墙

如果使用防火墙,确保允许访问 8080 端口:

sudo ufw allow 8080

5.6 配置 HTTPS(使用 443 端口)

如果需要配置 HTTPS,建议使用 Let’s Encrypt 提供免费的 SSL 证书,并通过 certbot 自动配置:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

相关文章:

【指令集】Nginx

本文作者: slience_me 【指令集】Nginx 1. 目录结构 Nginx 的基础目录结构通常包括以下几个主要目录: Nginx的目录结构大致如下(以Linux系统为例): /etc/nginx/ # Nginx的配置文件目录 ├── ngin…...

蓝耘云智算|使用 Deepseek R1 模型优化 BERT 在 NLP 任务中的表现

在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)已成为许多文本分类任务的基准模型。然而,随着新模型的出现和技术的不断进步,BERT在某些情况下可能不…...

LINUX常用命令学习

查看系统版本 使用hostnamectl命令检查。hostnamectl显示了CentOS的版本以及操作系统的相关信息,非常方便 设置linux机器别名称 hostnamectl set-hostname 机器别名 --static 华为云 centos 命令:lsb_release -a linux:cat /proc/version 查看进程路…...

【java面向对象的三大特性】封装、继承和多态

目录标题 一、封装(Encapsulation):二、继承(Inheritance):三、多态(Polymorphism):1. 多态的三个必要条件:2.多态的具体实现:3.多态的使用场景&a…...

【开源免费】基于SpringBoot+Vue.JS校园商铺管理系统(JAVA毕业设计)

本文项目编号 T 191 ,文末自助获取源码 \color{red}{T191,文末自助获取源码} T191,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

日常故障排查 - Java程序故障排查

Java程序故障 无论对于任何的故障而言,恢复可用性都是首要目标。但作为一个技术匠人,不能让同一个问题导致多次故障,因此故障的根因剖析以及解决也是很重要的。但是故障根因剖析是需要现场数据来进行分析,因此在故障恢复之前要尽…...

ai数字人分身系统开发源码saas化

#数字人分身系统# #数字人系统源码# #ai数字人123 123# 云罗抖去推数字人分身系统是一款融合了形象克隆、声音克隆、AI数字人分身、AI智能剪辑、智能文案等各种AI技术一体化的短视频营销工具,其核心功能优势主要体现在以下几方面: 真实度高&#xf…...

DeepSeek免费部署到WPS或Office

部署到WPS - 通过OfficeAI插件接入: - 准备工作:安装最新版本的WPS Office软件;访问DeepSeek官网,点击右上角的“API开放平台”,登录账号(若无账号需先注册),登录成功后,…...

vue2和vue3插槽slot最通俗易懂的区别理解

在 Vue 的组件通信中,slot(插槽)的编译优化是一个重要的性能提升点。以下是 Vue2 和 Vue3 在 slot 处理上的差异及优化原理,用更直观的方式解释: Vue2 的 Slot 更新机制 想象一个父子组件场景: 父组件&am…...

生成式人工智能:技术革命与应用图景

(这文章有些地方看不懂很正常,因为有太多生词,需要对 计算机/人工智能 研究至深的人才能看懂,遇到不会的地方用浏览器搜索或跳过) 引言 2023年被称我们为"生成式AI元年",以GPT-4、DALL-E 3、Stable Diffusi…...

关于Dest1ny:我的创作纪念日

Dest1ny 因为这是csdn任务,我就稍微“写”了一下! 如果大家真的有什么想聊的或者想一起学习的,欢迎在评论区或者私信中与我讨论! 2025想说的话 我就把我想说的写在前面! 不用对未来焦虑,不要觉得自己走…...

AI学习记录 - 最简单的专家模型 MOE

代码 import torch import torch.nn as nn import torch.nn.functional as F from typing import Tupleclass BasicExpert(nn.Module):# 一个 Expert 可以是一个最简单的, linear 层即可# 也可以是 MLP 层# 也可以是 更复杂的 MLP 层(active function 设…...

【C++内存管理】—— 策略、陷阱及应对之道

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…...

分布式版本控制系统---git

Git:从基础到进阶的全面指南 Git 是一个分布式版本控制系统,广泛应用于软件开发中,用于跟踪文件的更改、支持团队协作以及管理项目代码。通过 Git,开发者可以在本地拥有完整的项目历史记录,进行离线开发,并…...

pg_sql关于时间的函数

1、时间戳和日期之间的相互转换 时间戳转日期(时间戳为数值类型,若为字符型需进行转换) # 保留到秒:2025-10-02 04:46:40 (字符型转换数值型) select to_timestamp(1759351600::bigint)# 保留到日&#x…...

【Kafka】Windows下安装Kafka(全面)

目录 1.前提条件 2.下载 3.安装 4.环境变量配置 5.验证 1.前提条件 参考版本:zookeeper为3.6.4 kafka版本为3.5.1 1.先安装zookeeper: 【Zookeeper】Windows下安装Zookeeper(全面)-CSDN博客https://blog.csdn.net/…...

【Qt】:概述(下载安装、认识 QT Creator)

🌈 个人主页:Zfox_ 🔥 系列专栏:Qt 目录 一:🔥 介绍 🦋 什么是 QT🦋 QT 发展史🦋 Qt版本🦋 QT 优点 一:🔥 搭建Qt开发环境 &#x1f9…...

Netty源码解析之异步处理(二):盛赞Promise中的集合设计

前言 在阅读Netty源码的过程中,我越来越相信一句话:“Netty的源码非常好,质量极高,是Java中质量最高的开源项目之一”。如果认真研究,会有一种遍地黄金的感觉。 本篇文件我将记录一下鄙人在Promise的实现类DefaultPr…...

Spring Boot 的约定优于配置,你的理解是什么?

“约定优于配置” 是 Spring Boot 极为重要的设计理念,它极大地简化了 Spring 应用的开发流程,下面从多个方面详细解释这一理念: 减少配置复杂性 传统开发的痛点 在传统的 Spring 开发里,配置工作相当繁琐。以配置 Spring MVC …...

图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介

1.Skia —— 2D 图形库 Skia 是一个 2D 图形库,它的作用是为开发者提供一个高层次的绘图接口,方便他们进行 2D 图形渲染(比如绘制文本、形状、图像等)。Skia 本身不直接管理 GPU 或进行底层的渲染工作,而是通过 底层图…...

git使用,注意空格

第一节 安装完成后,找个目录用于存储,打开目录右击选择git bash here 命令1 姓名 回车 git config --global user.name "li" 命令2 邮箱 回车 git config --global user.email "888163.com" 命令3 初始化新仓库,下载克隆 回…...

以用户为中心,汽车 HMI 界面设计的创新之道

在汽车智能化飞速发展的当下,汽车 HMI(人机交互界面)成为连接人与车的关键桥梁。如何打造出优秀的 HMI 界面?答案是以用户为中心,探索创新之道。 用户需求是汽车 HMI 界面设计的指南针。在设计前期,深入调…...

CentOS安装Docker,Ubuntu安装Docker,Docker解决方案

文章目录 CentOS7安装DockerUbuntu修改Docker镜像源docker设置容器自动启动启动时加--restartalways如果已经过运行的项目docker compose设置容器自启动 docker file修改时区docker在容器执行命令简单粗暴的办法安装curl docker compose命令安装docker compose Docker WEB 图形…...

c#中“事件-event”的经典示例与理解

在C#编程语言中,事件(Event)是一个非常重要的概念,它提供了一种松耦合的方式,让对象间能够通知彼此,而无需直接联系。事件的使用可以让我们的代码更加灵活、可扩展且易于维护。 事件可以视作委托的实例&…...

git bash在github的库中上传或更新本地文件

一、将本地文件上传到 GitHub 仓库 1. 创建 GitHub 仓库 如果你还没有在 GitHub 上创建仓库,首先需要创建一个新的仓库: 登录到 GitHub。点击右上角的 按钮,选择 New repository。给你的仓库起个名字,并选择 Public 或 Privat…...

【编程实践】vscode+pyside6环境部署

1 PySide6简介 PySide6是Qt for Python的官方版本,支持Qt6,提供Python访问Qt框架的接口。优点包括官方支持、LGPL许可,便于商业应用,与Qt6同步更新,支持最新特性。缺点是相比PyQt5,社区资源较少。未来发展…...

vue 文件下载(导出)excel的方法

目前有一个到处功能的需求,这是我用过DeepSeek生成的导出(下载)excel的一个方法。 1.excel的文件名是后端生成的,放在了响应头那里。 2.这里也可以自己制定文件名。 3.axios用的是原生的axios,不要用处理过的&#xff…...

服务器延迟给视频网站造成的影响

在数字化时代中,网络视频已经成为人们日常娱乐和获取信息的重要平台,网络视频的流畅性会影响着用户的体验度,那么,当服务器出现延迟会对视频网站造成哪些影响呢?本文就来共同了解一下吧! 当所使用的服务器由…...

django上传文件

1、settings.py配置 # 静态文件配置 STATIC_URL /static/ STATICFILES_DIRS [BASE_DIR /static, ]上传文件 # 定义一个视图函数,该函数接收一个 request 参数 from django.shortcuts import render # 必备引入 import json from django.views.decorators.http i…...

Mysql数据库

一.数据定义语言DDL 一.概述 DDL用于定义和管理数据库的结构 DDL关键字:1.CREATE; 2.ALTER; 3.DROP 二.SQL命名规定和规范 1.标识符命名规则 2.标识符命名规范 三.库管理 1. CREATE DATABASE 数据库名; 2. CREATE DATABASE IF NOT EXISTS 数据库名; 3. CREATE…...

机器学习 - 大数定律、可能近似正确学习理论

一、大数定律: 大数定律是概率论中的一个基本定理,其核心思想是:当独立重复的随机试验次数足够大时,样本的平均值会趋近于该随机变量的期望值。下面从直观和数学两个角度来说明这一概念: 1. 直观理解 重复试验的稳定…...

Kotlin 2.1.0 入门教程(十七)接口

接口 接口可以包含抽象方法的声明,也可以包含方法的实现。 接口与抽象类的不同之处在于,接口无法存储状态。接口可以拥有属性,但这些属性要么必须是抽象的,要么就得提供访问器的实现。 接口使用 interface 关键字来定义&#x…...

USB Flash闪存驱动器安全分析(第一部分)

翻译原文链接:Hacking Some More Secure USB Flash Drives (Part I) | SySS Tech Blog 文章翻译总结:文章对一些具有AES硬件加密的USB闪存驱动器的网络安全分析研究。研究由SySS的IT安全专家Matthias Deeg进行,他在2022年初发现了几个安全漏…...

报名丨Computer useVoice Agent :使用 TEN 搭建你的 Mac Assistant

与 TEN 相聚在「LET’S VISION 2025」大会,欢迎来展位上跟我们交流。这次我们还准备了一场聚焦「computer use」的工作坊,功能新鲜上线,线下首波体验! 📅 TEN 展位:2025年3月1日-2日 TEN workshop&#x…...

常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构

文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…...

微信小程序的制作

制作微信小程序的过程大致可以分为几个步骤:从环境搭建、项目创建,到开发、调试和发布。下面我会为你简要介绍每个步骤。 1. 准备工作 在开始开发微信小程序之前,你需要确保你已经完成了以下几个步骤: 注册微信小程序账号&…...

C# 特性 学习记录

在C#中,特性(Attribute)是一种用于向代码元素(如类、方法、属性等)添加元数据的机制。特性本身不会直接影响代码的执行,但它们可以提供额外的信息,这些信息可以在运行时通过反射(Ref…...

DBeaver clickhouse 时区不对 时间少了8小时

选择DataBase选择Driver Manager选择clickhouse数据库点中之后,选择编辑添加两个全局属性 use_server_time_zone use_time_zone 鼠标移动到User Properties上,右键即可添加一列空白 然后断开重连...

如何测试和验证CVE-2024-1430:Netgear R7000 路由器信息泄露漏洞分析

CVE-2024-1430 是一个影响 Netgear R7000 路由器的安全漏洞,漏洞来源于该路由器 Web 管理界面的信息泄露问题。攻击者通过访问 /currentsetting.htm 文件,可能泄露敏感信息,如 Wi-Fi 密码等。 在测试和验证 CVE-2024-1430 时,您需…...

Express 中间件是什么

在 Express 里,中间件是具备访问请求对象(req)、响应对象(res)以及应用程序请求-响应循环中的下一个中间件函数(一般用next表示)的函数。 一、中间件的定义与调用顺序 在 Express 应用中&…...

【做一个微信小程序】校园地图页面实现

前言 上一个教程我们实现了小程序的一些的功能,有背景渐变色,发布功能有的呢,已支持图片上传功能,表情和投票功能开发中(请期待)。下面是一个更高级的微信小程序实现,包含以下功能:…...

(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念

目录 前言与导论 碎碎念 所以,我到底需要知道哪些东西呢 从一些基础的概念入手 常见的工具和说法 ST公司 MDK5 (Keil5) CubeMX 如何使用MDK5的一些常用功能 MDK5的一些常见的设置 前言与导论 非常感谢2301_77816627-CSDN博客的提问,他非常好奇…...

java nio 原理 非阻塞IO Netty

一、为什么必须去了解NIO 首先你需要之后Netty的主要实现手段就是Nio,很多人一直学不明白Netty,根本原因是 除了日常开发中很难能够实践,很大一部分原因是不熟悉NIO,事实上真正熟悉了NIO和它背后的原理之后,去查看Netty的源码就有…...

【ClickHouse】Ubuntu下离线安装ClickHouse数据库并使用DBeaver连接

目录 0. 安装前准备1 安装ClickHouse1.1 下载安装包1.2 离线安装1.3 配置密码1.4 启动ClickHouse服务 2 DBeaver连接配置2.1 下载ClickHouse驱动2.2 DBeaver配置2.2.1 配置主要参数2.2.2 配置驱动 2.3 常见问题处理2.3.1 修改远程登录配置2.3.2 更新驱动配置 0. 安装前准备 有…...

vue2打包带路径的项目,刷新404问题解决

问题描述 Vue 2 项目打包时设置了 publicPath: /web/,并通过 Nginx 配置访问 http://ip/web 时可以正常加载首页,但刷新页面时出现 404 错误 原nginx的配置 location /web {alias /www/dist; # 静态文件地址try_files $uri $uri/ /index.html;index i…...

【计算机视觉】文本识别

计算机视觉,广义的文本识别是指对输入的图像进行分析处理,识别出图像中的文字信息,这里的图像可以使传统的文档图像,也可以是现实世界中的场景图像。 简介 无论是传统方法还是基于深度深度学习的方法,完整的文本识别…...

Vue和React的区别

组件开发方式&#xff1a; Vue 使用单文件组件&#xff08;SFC&#xff09;, HTML, JS 和 CSS 在一个文件内实现 <template><div class"my-component"><!-- HTML模板 --></div> </template><script> export default {// JavaScr…...

STM32 是什么?同类产品有哪些

STM32 是什么&#xff1f; STM32 是由意法半导体&#xff08;STMicroelectronics&#xff09;推出的基于 ARM Cortex-M 内核 的 32 位微控制器&#xff08;MCU&#xff09;系列。它专为高性能、低功耗的嵌入式应用设计&#xff0c;广泛应用于以下领域&#xff1a; 工业控制&am…...

Git学习使用笔记

目录 一、基本介绍 1.1 版本控制 1.2 版本控制软件的基础功能 1.3 多人协作开发/集中式版本控制 1.4 分布式版本控制 二、Git安装 2.1下载git 2.2 使用Github Desktop软件 2.2.1 创建本地仓库 2.2.2 删除本地仓库 2.2.3 仓库文件操作 2.2.4 多人协作 2.2.4.1 分…...

Bash 中的运算方式

目录 概述&#xff1a; 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc&#xff08;计算器&#xff0c;支持浮点数&#xff09; 6. awk&#xff08;强大的文本处理工具&#xff0c;也可计算&#xff09; 概述&#xff1a; Bash 本身只支持整数运算&am…...