Nginx核心功能与LNMP部署
目录
一、引言
二、Nginx 简介
2.1 Nginx 的起源与发展
2.2 Nginx 的特点
三、Nginx 核心功能详解
3.1 HTTP 服务器功能
3.1.1 静态资源处理
3.1.2 HTTP 协议支持
3.2 反向代理功能
3.2.1 反向代理的原理
3.2.2 Nginx 反向代理配置
3.3 负载均衡功能
3.3.1 负载均衡的概念和作用
3.3.2 Nginx 负载均衡配置
轮询算法
IP 哈希算法
最少连接算法
3.4 虚拟主机功能
3.4.1 虚拟主机的概念和分类
3.4.2 Nginx 虚拟主机配置
3.5 缓存功能
3.5.1 缓存的原理和作用
3.5.2 Nginx 缓存配置
四、LNMP 环境搭建实验
4.1 实验环境准备
4.2 安装 Nginx
4.2.1 更新系统软件包列表
4.2.2 安装 Nginx
4.2.3 启动 Nginx 服务
4.2.4 设置 Nginx 开机自启
4.2.5 验证 Nginx 安装
4.3 安装 MySQL
4.3.1 安装 MySQL 服务器
4.3.2 启动 MySQL 服务
4.3.3 设置 MySQL 开机自启
4.3.4 运行安全脚本,设置 root 用户密码等
4.4 安装 PHP 及相关扩展
4.4.1 安装 PHP 和 Nginx 所需的 PHP-FPM 模块
4.4.2 验证 PHP 安装
4.5 配置 Nginx 支持 PHP
4.5.1 编辑 Nginx 的配置文件
4.5.2 在server块中添加或修改以下内容
4.5.3 保存并退出文件,然后检查 Nginx 配置文件的语法
4.5.4 如果语法检查通过,重新加载 Nginx 配置
4.6 测试 LNMP 环境
五、Nginx 和 LNMP 环境的优化与维护
5.1 Nginx 性能优化
5.2 LNMP 环境安全维护
六、总结与展望
6.1 总结
6.2 展望
一、引言
在当今数字化时代,网站和应用程序的高效运行离不开稳定且强大的服务器架构。LNMP(Linux + Nginx + MySQL + PHP)架构作为一种经典的组合,凭借其高性能、低成本和易于扩展的特点,广泛应用于各类网站和应用系统中。其中,Nginx 作为一款轻量级的高性能 Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在整个架构中扮演着至关重要的角色。本文将深入探讨 Nginx 的核心功能,并详细介绍 LNMP 环境搭建的实验命令及相关配置,帮助读者全面掌握这一实用的技术架构。
二、Nginx 简介
2.1 Nginx 的起源与发展
Nginx 由俄罗斯的伊戈尔・赛索耶夫(Igor Sysoev)开发,最初是为了解决俄罗斯访问量最大的新闻站点Rambler.ru的高并发问题。2004 年 10 月 4 日,Nginx 0.1.0 版本发布,此后不断发展和完善,逐渐成为全球范围内广泛使用的服务器软件。
2.2 Nginx 的特点
- 高性能:采用事件驱动的异步非阻塞处理方式,能够在低内存占用的情况下处理大量并发连接,性能远超传统的 Apache 服务器。
- 轻量级:Nginx 的代码简洁,核心组件和模块较少,安装包体积小,启动速度快,对系统资源的消耗较低。
- 高可靠性:具备完善的错误处理和容错机制,在高并发场景下能够保持稳定运行,减少服务中断的风险。
- 可扩展性:支持模块化设计,用户可以根据需要选择和安装不同的模块,扩展 Nginx 的功能。
- 配置简单:Nginx 的配置文件采用简洁的语法结构,易于理解和维护,降低了运维成本。
三、Nginx 核心功能详解
3.1 HTTP 服务器功能
3.1.1 静态资源处理
Nginx 作为 HTTP 服务器的基本功能之一,是能够高效地处理静态资源的请求。静态资源包括 HTML 页面、CSS 样式表、JavaScript 脚本、图片、视频等。当客户端向服务器请求这些静态资源时,Nginx 会直接从文件系统中读取相应的文件,并将其返回给客户端。
Nginx 的静态资源处理能力得益于其高效的 I/O 模型和缓存机制。它采用了事件驱动的异步非阻塞 I/O 模型,能够在处理大量并发请求时保持较低的 CPU 和内存占用。同时,Nginx 还支持对静态资源进行缓存,减少了对磁盘 I/O 的频繁访问,提高了响应速度。
以下是一个简单的 Nginx 配置示例,用于处理静态资源请求:
server {listen 80;server_name example.com;root /var/www/html;location / {try_files $uri $uri/ /index.html;}
}
在上述配置中,root
指令指定了网站的根目录,location
块用于匹配请求的 URL 路径。try_files
指令会依次尝试查找请求的文件,如果文件不存在,则返回index.html
页面。
3.1.2 HTTP 协议支持
Nginx 支持完整的 HTTP 协议,包括 HTTP/1.0、HTTP/1.1 和 HTTP/2。它能够处理各种 HTTP 请求方法,如 GET、POST、PUT、DELETE 等,并支持 HTTP 头信息的解析和处理。
在 HTTP/2 协议方面,Nginx 具有良好的支持,通过使用二进制分帧、多路复用、头部压缩等技术,HTTP/2 能够显著提高网站的性能和响应速度。要启用 HTTP/2 支持,只需在 Nginx 配置文件中添加相应的指令:
server {listen 443 ssl http2;server_name example.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;# 其他配置...
}
3.2 反向代理功能
3.2.1 反向代理的原理
反向代理是指代理服务器位于内部网络和外部网络之间,接收客户端的请求,并将请求转发给内部的 Web 服务器,然后将 Web 服务器的响应返回给客户端。客户端并不知道请求是由内部的哪台服务器处理的,只与反向代理服务器进行通信。
反向代理的主要作用包括隐藏内部服务器的真实 IP 地址,提高服务器的安全性;实现负载均衡,将请求均匀地分配到多个后端服务器上,提高系统的性能和可用性;缓存静态资源,减少对后端服务器的请求,提高响应速度等。
3.2.2 Nginx 反向代理配置
在 Nginx 中配置反向代理非常简单,只需在server
块中添加proxy_pass
指令即可。以下是一个简单的反向代理配置示例:
server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
在上述配置中,proxy_pass
指令指定了后端服务器的地址,proxy_set_header
指令用于设置请求头信息,将客户端的真实 IP 地址和请求的主机名传递给后端服务器。
3.3 负载均衡功能
3.3.1 负载均衡的概念和作用
负载均衡是指将客户端的请求均匀地分配到多个后端服务器上,避免单个服务器负载过高,从而提高整个系统的性能和可用性。负载均衡可以根据不同的算法和策略进行请求分配,常见的负载均衡算法包括轮询、IP 哈希、最少连接等。
3.3.2 Nginx 负载均衡配置
Nginx 支持多种负载均衡算法,以下是几种常见的负载均衡配置示例:
轮询算法
http {upstream backend {server backend1.example.com;server backend2.example.com;}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}}
}
在上述配置中,upstream
块定义了一个后端服务器组,Nginx 会按照轮询的方式将请求依次分配到backend1.example.com
和backend2.example.com
上。
IP 哈希算法
http {upstream backend {ip_hash;server backend1.example.com;server backend2.example.com;}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}}
}
ip_hash
指令表示使用 IP 哈希算法,根据客户端的 IP 地址进行哈希计算,将相同 IP 地址的请求始终分配到同一台后端服务器上,保证了会话的一致性。
最少连接算法
http {upstream backend {least_conn;server backend1.example.com;server backend2.example.com;}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}}
}
least_conn
指令表示使用最少连接算法,Nginx 会将请求分配给当前连接数最少的后端服务器,使服务器的负载更加均衡。
3.4 虚拟主机功能
3.4.1 虚拟主机的概念和分类
虚拟主机是指在一台物理服务器上通过软件技术模拟出多个独立的服务器环境,每个虚拟主机都有自己独立的域名、IP 地址和网站目录,就像拥有一台独立的服务器一样。虚拟主机可以分为基于 IP 的虚拟主机、基于域名的虚拟主机和基于端口的虚拟主机三种类型。
3.4.2 Nginx 虚拟主机配置
以下是一个基于域名的虚拟主机配置示例:
http {server {listen 80;server_name example1.com;root /var/www/html/example1;location / {try_files $uri $uri/ /index.html;}}server {listen 80;server_name example2.com;root /var/www/html/example2;location / {try_files $uri $uri/ /index.html;}}
}
在上述配置中,通过server_name
指令指定了不同的域名,每个server
块对应一个虚拟主机,分别使用不同的网站根目录。
3.5 缓存功能
3.5.1 缓存的原理和作用
缓存是指将经常访问的数据或资源存储在高速存储设备中,当再次请求相同的数据时,直接从缓存中获取,而不需要重新从原始数据源中获取,从而提高响应速度和系统性能。在 Web 服务器中,缓存可以分为浏览器缓存、代理服务器缓存和服务器端缓存等。
Nginx 的缓存功能主要是服务器端缓存,它可以对静态资源和动态内容进行缓存,减少对后端服务器的请求,降低服务器的负载。
3.5.2 Nginx 缓存配置
以下是一个简单的 Nginx 缓存配置示例:
http {proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;proxy_cache my_cache;proxy_cache_valid 200 302 10m;proxy_cache_valid 404 1m;}}
}
在上述配置中,proxy_cache_path
指令定义了缓存的存储路径和相关参数,proxy_cache
指令指定了使用的缓存区域,proxy_cache_valid
指令设置了不同响应状态码的缓存时间。
四、LNMP 环境搭建实验
4.1 实验环境准备
在进行 LNMP 环境搭建实验之前,需要准备一台安装了 Linux 操作系统的服务器,本文以 Ubuntu 20.04 为例。同时,需要确保服务器能够正常访问互联网,以便下载和安装所需的软件包。
4.2 安装 Nginx
4.2.1 更新系统软件包列表
sudo apt update
4.2.2 安装 Nginx
sudo apt install nginx
4.2.3 启动 Nginx 服务
sudo systemctl start nginx
4.2.4 设置 Nginx 开机自启
sudo systemctl enable nginx
4.2.5 验证 Nginx 安装
在浏览器中输入服务器的 IP 地址,如果看到 Nginx 的欢迎页面,则说明 Nginx 安装成功。
4.3 安装 MySQL
4.3.1 安装 MySQL 服务器
sudo apt install mysql-server
4.3.2 启动 MySQL 服务
sudo systemctl start mysql
4.3.3 设置 MySQL 开机自启
sudo systemctl enable mysql
4.3.4 运行安全脚本,设置 root 用户密码等
sudo mysql_secure_installation
按照提示进行操作,设置 root 用户密码、删除匿名用户、禁止远程 root 登录等。
4.4 安装 PHP 及相关扩展
4.4.1 安装 PHP 和 Nginx 所需的 PHP-FPM 模块
sudo apt install php-fpm php-mysql
4.4.2 验证 PHP 安装
创建一个简单的 PHP 文件info.php
,内容如下:
<?php
phpinfo();
?>
将该文件保存到 Nginx 的网站根目录(通常为/var/www/html
),然后在浏览器中访问http://your_server_ip/info.php
,如果看到 PHP 信息页面,则说明 PHP 安装成功。
4.5 配置 Nginx 支持 PHP
4.5.1 编辑 Nginx 的配置文件
sudo nano /etc/nginx/sites-available/default
4.5.2 在server
块中添加或修改以下内容
location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据实际安装的PHP版本调整
}
4.5.3 保存并退出文件,然后检查 Nginx 配置文件的语法
sudo nginx -t
4.5.4 如果语法检查通过,重新加载 Nginx 配置
sudo systemctl reload nginx
4.6 测试 LNMP 环境
创建一个简单的 PHP 脚本,用于连接 MySQL 数据库并查询数据:
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}$sql = "SELECT id, name FROM your_table";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while($row = $result->fetch_assoc()) {echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";}
} else {echo "0 results";
}
$conn->close();
?>
将上述脚本保存为test.php
,并将其放置在 Nginx 的网站根目录下。在浏览器中访问http://your_server_ip/test.php
,如果能够看到数据库查询结果,则说明 LNMP 环境搭建成功。
五、Nginx 和 LNMP 环境的优化与维护
5.1 Nginx 性能优化
- 调整 Nginx 配置参数:根据服务器的硬件资源和实际负载情况,调整
worker_processes
、worker_connections
等参数,提高 Nginx 的并发处理能力。 - 启用 Gzip 压缩:在 Nginx 配置文件中添加
gzip on;
指令,对响应内容进行压缩,减少数据传输量,提高响应速度。 - 优化缓存策略:合理设置缓存时间和缓存大小,根据不同的业务需求选择合适的缓存算法。
5.2 LNMP 环境安全维护
- 定期更新软件包:及时更新 Linux 系统、Nginx、MySQL 和 PHP 等软件的版本,修复已知的安全漏洞。
- 设置防火墙规则:使用防火墙(如
iptables
或ufw
)限制服务器的网络访问,只允许必要的端口和服务通过。 - 加强 MySQL 安全:设置强密码、限制远程访问、定期备份数据库等。
六、总结与展望
6.1 总结
本文详细介绍了 Nginx 的核心功能,包括 HTTP 服务器、反向代理、负载均衡、虚拟主机和缓存等功能,并深入探讨了 LNMP 环境搭建的实验步骤和相关配置。通过学习和实践,读者可以掌握 Nginx 的基本原理和使用方法,以及如何搭建和配置 LNMP 环境,为开发和部署高性能的网站和应用程序奠定基础。
6.2 展望
随着互联网技术的不断发展,Nginx 和 LNMP 架构也将不断演进和完善。未来,Nginx 可能会在性能优化、安全防护、容器化支持等方面取得更大的突破,而 LNMP 架构也将在更多的领域得到广泛应用。同时,随着云计算、大数据、人工智能等技术的兴起,LNMP 架构也将与这些技术进行深度融合,为用户提供更加高效、智能的服务。
相关文章:
Nginx核心功能与LNMP部署
目录 一、引言 二、Nginx 简介 2.1 Nginx 的起源与发展 2.2 Nginx 的特点 三、Nginx 核心功能详解 3.1 HTTP 服务器功能 3.1.1 静态资源处理 3.1.2 HTTP 协议支持 3.2 反向代理功能 3.2.1 反向代理的原理 3.2.2 Nginx 反向代理配置 3.3 负载均衡功能 3.3.1 负载均…...
爬虫学习笔记(五)---数据解析之re
数据提取 前面的爬虫笔记学习的都是如何爬取整个页面的内容,服务器渲染中,数据是直接放在源代码html里面的,大多数情况下整个页面的内容真正需要的只是一小部分,那把这一小部分提取出来的过程就叫做数据提取 数据解析方式 re解…...
ESP32- 开发笔记- 软件开发 4 - GPIO 口
1 背景介绍 GPIO(General Purpose Input/Output) ——通用输入输出口,就是能由软件自由控制输入(接收外界信号)或输出(发出电平信号)的引脚。 ESP32 最核心的功能之一,能被用来控制…...
大前端开发——前端知识渐变分层讲解 利用金字塔原理简化前端知识体系
Web开发基础 核心概念 HTML、CSS和JavaScript:Web开发的三大基石,分别负责结构、样式和行为。 代码管理:随着项目规模扩大,需要将代码拆分成小块,便于维护。 作用域污染:早期所有代码共享全局作用域&…...
面向网络安全的开源 大模型-Foundation-Sec-8B
1. Foundation-Sec-8B 整体介绍 Foundation-Sec-8B 是一个专注于网络安全领域的大型语言模型 (LLM),由思科的基础人工智能团队 (Foundation AI) 开发 。它基于 Llama 3.1-8B 架构构建,并通过在一个精心策划和整理的网络安全专业语料库上进行持续预训练而得到增强 。该模型旨在…...
长效住宅IP是什么?如何获取长效住宅IP?
在当今的互联网世界里,IP地址作为连接用户与网站之间的桥梁,其重要性不言而喻。对于跨境电商、社交媒体运营以及数据采集等领域的专业人士而言,普通的IP地址已无法满足日益复杂的需求。他们更需要一种稳定、安全且持久的长效住宅IP来完成各类…...
零基础实现把知识库接到聆思CSK6大模型开发板上
前言 大模型作为一个语言模型,实际上没有真正的记忆功能。所谓的对话记忆只是开发者将对话历史向GPT发送消息时将最近的对话历史通过提示工程组发送给ChatGPT。换句话说,如果对话历史超过了大模型的最大上下文,GPT会忘记之前的部分࿰…...
docker 部署前、后端分离项目详细步骤(从打包到部署)
在平常的开发工作中,一个项目经历需求、开发、测试、上线等步骤。在开发测试完成后,我们需要部署测试环境、生产环境等,那么我们用 docker 方式应该怎么部署呢?前后端分离的项目又该如何部署呢?那么,今天我…...
【深度学习的灵魂】图片布局生成模型LayoutPrompt(1)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目…...
BG开发者日志429:故事模式的思路
1、故事模式已有的一关试验关中,直接揭示了一些重要真相,白给了。 /原设计思路是玩家可以直接玩故事模式,很快就能通关本模式的所有关卡,知道所有真相。 /原表现方式是步行模拟,到地点看对话。 (现在看来…...
Linux批量管理:Ansible自动化运维指南
引言 在服务器规模化的时代,Ansible就像一位"自动化指挥官"🎖️,让你轻松管理成百上千台Linux主机!本文将带你全面掌握Ansible的核心用法,从基础架构到高级Playbook,从主机管理到应用部署。无论…...
【AI提示词】第一性原理
提示说明 擅长运用第一性原理思维进行深度问题分析与创新解决方案构建的专家。 提示词 # Role: 第一性原理思考导师## Profile - language: 中文 - description: 擅长运用第一性原理思维进行深度问题分析与创新解决方案构建的专家 - background: 具备理论物理学与哲学复合背…...
【LeetCode】螺旋矩阵
题目 题目链接 请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素,示例如下: 思路 整体思路为模拟。具体地,可以采用“减而治之”的思想,将整个遍历过程拆分为一次次对每一行和每一列的遍历,每次只考虑一行/…...
给 BBRv2/3 火上浇油的 drain-to-target
最近彻底跟 BBR 杠上了,再读一篇落实性论文 Promises and Potential of BBRv3,结论依然是 BBRv3 并未如声称的那般优化公平性,反而可能更糟糕,不得不说又是任重而道远。 说一个我遇到的,讲理之外顺带吐槽。 BBRv1 在…...
后端id类型为long类型时,返回给前端浏览器四舍五入,导致id精度缺失问题
背景 今天在代码里,掉了别人写的接口,有个id的字段是long类型的,我这边加点参数返回给前端,然后前端根据id修改,结果修改的数据记录有,但是没起作用,后来发现根据他传给我的id在后台数据库查不…...
《云原生》核心内容梳理和分阶段学习计划
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息文章目录 云原生核心内容梳理和分阶段学习计划一、云原生核心技术栈(2025年重点方向)二、分阶段学习计划(6-12个月系统性进阶)**阶段1:基础入…...
跟我学C++中级篇——控制死锁
一、同步和死锁 在前面学习多线程和网络编程时,都对线程中数据的同步和数据结构多线程访问的安全问题进行了分析和说明。其实,多线程编程之所以难,难点之一就在这里,数据同步意味着效率和安全的平衡,而这里的安全有一…...
「Mac畅玩AIGC与多模态08」开发篇04 - 基于 OpenAPI Schema 开发专用 Agent 插件
一、概述 本篇介绍如何在 macOS 环境下,通过编写 OpenAPI Schema,开发自定义的专用插件,让智能体可以调用外部 API,扩展功能至任意在线服务。实践内容基于 Dify 平台,适配 macOS 开发环境。 二、环境准备 1. 确认本地开发环境 macOS 系统Dify 平台已完成部署并可访问本…...
“兴火·燎原”总冠军诞生,云宏信息《金融高算力轻量云平台》登顶
“兴火燎原”创新马拉松公开赛2024年度全国总决赛于4月18日在福州举办,云宏科技股份有限公司(以下简称:云宏)的《金融高算力轻量云平台》项目脱颖而出,夺得全国总冠军。 作为数字中国创新大赛金融领域的核心赛事&…...
MySQL 索引与事务详解
MySQL 索引与事务详解 一、索引(Index) 1. 索引的作用与原理 索引是数据库的"目录",能够大幅提高查询速度,但会增加写入开销。MySQL 使用 BTree 作为主要索引结构。 2. 索引类型 (1) 普通索引 CREATE INDEX idx_n…...
洛谷题解 | CF111C Petya and Spiders
目录 题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 说明/提示题目简化题目思路AC 代码 题目描述 Little Petya loves training spiders. Petya has a board $ nm $ in size. Each cell of the board initially has a spider sitting…...
【深度对比】Google Play与IOS 马甲包处理差异分析
在移动应用发布与推广过程中,马甲包(Cloned App / Alternate Version) 曾被广泛用于流量测试、风险隔离、多品牌运营等场景中。随着 Google Play 与 Apple App Store 审核政策不断收紧,开发者们越来越关注两个平台对“马甲包”的态…...
【C++】C++11新特性(二)
目录 完美转发 引用折叠: lambda表达式 完美转发 引用折叠: 引用折叠是 C的类型系统规则,用于处理“引用的引用”(如 T& &)。 在推导过程中,必须折叠成有效的单一引用类型。直接声明引用的引用…...
高等数学-第七版-下册 选做记录 习题9-4
1. 3. 4. 8....
特殊权限管理
特殊权限的类型 SUID(Set User ID):当一个可执行文件设置了 SUID 权限后,在执行该文件时,进程会以文件所有者的身份运行,而不是以执行用户的身份。例如,/usr/bin/passwd文件用于修改用户密码&a…...
最新的30个Android Kotlin面试题
以下是2025年最新的30个Android Kotlin面试题及其核心解析,综合了协程、密封类、高阶函数、扩展函数等高频考点,并附有相关引用来源: 一、协程与并发编程 协程与线程的核心区别是什么? 协程是轻量级线程,通过挂起而非阻…...
牛客周赛 Round 91
赛时成绩如下: A. while 题目描述 小歪找到了一个由五个字符构成的字符串,它一次可以选择任意一个字符,将其修改为另一个字符,他想要知道,将这个字符串修改为 "while" 需要的最少操作次数。 解题思路&#x…...
Kafka 的服务端的物理存储架构是什么?零拷贝,mmap,sendfile、DMA gather又是什么?
Kafka 服务端的物理存储架构 Kafka 的物理存储架构设计旨在支持高吞吐、低延迟的数据处理,其核心特点包括: 1. 分区与日志段 主题(Topic)与分区(Partition): Kafka 将每个主题划分为多个分区&…...
1.7 点云数据获取方式——视觉SLAM
图1-7-1 Visual SLAM生成的点...
双向流热固耦合的收敛
1 收敛性 如果想把流固耦合计算过程的收敛性弄清楚,必须理解流固耦合的求解过程和对流场与固体场的定义设置: -这个与其他的真实物理场可能有所不同 -例如你的初始条件可能是不同的当遇到收敛困难时,需要看一下的求解过程用户使用监测点和…...
C++之类和对象:构造函数,析构函数,拷贝构造,赋值运算符重载
前提:如果一个类是空类,C中空类中真的什么都没有吗,不是的,编译器会自动生成6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。 默认成员函数:构造函…...
Vue2 相关知识点整理
一、Vue2 核心机制 1. Vue2 的响应式原理是什么? 答案: Vue2 通过 Object.defineProperty 给对象的每个属性添加 getter 和 setter,当数据被访问或修改时,自动触发视图更新。通俗解释: 就像给每个数据绑了一个“监控…...
CSS:编写位置分类及优先级
文章目录 一、行内样式二、内部样式三、外部样式(推荐)四、优先级五、编码风格 一、行内样式 最好不这样写 二、内部样式 可以使用 三、外部样式(推荐) 四、优先级 行内样式 > 内部样式 外部样式 五、编码风格...
Tauri 跨平台开发指南及实战:用前端技术征服桌面应用(合集-万字长文)
厌倦了笨重的Electron应用?想要构建体积小、性能高、安全可靠的跨平台桌面应用?Tauri将是你的不二之选!本教程带你从入门到精通,掌握这个下一代桌面应用开发框架,并通过实战APK分析工具项目,将理论知识转化…...
深入解析 Linux 进程池:原理、实现与高并发优化
引言 当你的服务器需要同时处理 10,000 个客户端请求时,传统的"来一个请求创建一个进程"模式会导致严重的性能瓶颈。此时,进程池(Process Pool) 便成为关键解决方案。它像一支训练有素的特种部队,通过预先创…...
[Python]非零基础的快速上手
从js转的python,没有从初学者阶段开始,主打一个快速上手能写再说. pycharm:一种编辑器 数据类型 基本数据类型:整型(整数)、浮点型、字符型、布尔型 复杂数据类型:列表(数组)、集合区{1,2,3}、元组(1,3.4)字典{n’:2,b:1} 模板字符串 输出模板字符串…...
《算法笔记》10.5小节——图算法专题->最小生成树 问题 E: Jungle Roads
题目描述 The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentlessly, so the large road network is too expensive to mai…...
数据中心网络架构:高效规划与自动化设计实践
在数据中心网络架构规划设计中,面临如下难点: 设备数量庞大: 服务器、交换机等设备数量多,如何合理规划机柜布局和空间分配,避免资源浪费或密度超标,成为设计难点。 线缆设计复杂: 海量线缆…...
Mysql存储引擎、锁机制
Mysql存储引擎 InnoDB(MySQL 5.5 及以后版本中的默认存储引擎) 事务支持:支持 ACID 事务,适合需要高可靠性的场景(如支付、订单)。 锁机制:默认使用 行级锁…...
UVA1537 Picnic Planning
目录 题目算法标签: 最小生成树, k r u s k a l kruskal kruskal重构树, 树形 d p dp dp思路重构树代码 题目 UVA1537 Picnic Planning 算法标签: 最小生成树, k r u s k a l kruskal kruskal重构树, 树形 d p dp dp 思路 将 1 1 1号点设置为终点, 然后执行重构树计算度数…...
通过AWS Console连接服务器,简化运维过程
简单通过AWS Console连接您的Linux服务器 本文作者: 封磊 Eclicktech SA | AWS Community Builder DevTool | AWS UGL | 亚马逊云科技云博主 阿里云&InfoQ&CSDN签约作者 文章目录 简单通过AWS Console连接您的Linux服务器本文作者: 封磊Eclicktech SA | AWS Community …...
公交实时查询小程序功能点开发
线路查询:用户可输入公交线路号码,小程序实时显示该线路车辆位置与发车信息,能一键切换行驶方向,助用户依实时情况选合适候车站点。站点查询:输入车站信息,小程序呈现经过该站所有公交线路及公交信息&#…...
nginx配置集群服务器中的tcp负载均衡器
文章目录 前言1. Ubuntu下nginx安装2. nginx的tcp负载配置 前言 假设一台机器支持两万的并发量,现在我们需要保证八万的并发量。首先想到的是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机器的物理性能来解决此问题。但是单台机…...
Qt/C++开发监控GB28181系统/获取设备信息/设备配置参数/通道信息/设备状态
一、前言 设备注册成功后,接下来要做的就是获取设备的信息,尤其是通道信息,根据国标协议,永远只有两个层级,一个是设备,然后就是设备下面多个通道,设备编码在整个系统中唯一,通道编…...
Linux系统基础:基础指令简介(网络概念部分)
简介:Linux 是一种开源的类 Unix 操作系统内核,由 Linus Torvalds 于 1991 年首次发布。经过多年发展,它已成为服务器、嵌入式设备和个人计算机领域的重要操作系统。 网络基础概念 初始协议 简单来说,协议是一种约定࿰…...
labview项目文件架构
为了使 LabVIEW 项目更具可扩展性和易于维护,合理规划和设计项目文件结构是非常重要的。 以下是一些基于行业经验和最佳实践的建议: 1. ### 文件夹层次划分 将不同的功能模块分开存储在一个清晰的分层目录结构中是一个常见的做法。通常情况下ÿ…...
nuxt项目中引入并配置 iview
安装iview npm install iview --save注:想要加入其它的配置,可以在 nuxt.config.js 的 plugins 配置项中加入,同时在 plugins 文件夹下加入引入逻辑。 在nuxt.config.js文件中写: {src: ~plugins/iview, ssr: true}同时新建 plugi…...
Origin绘图操作:点线图符号显示不全解决方法
一、问题说明 在用origin绘制点线图时,图表刻度线处的点符号显示不完全,如图所示: 二、解决方法 方法一:调整坐标轴刻度,使其能够显示全部数据点。 方法二:有时为了图表美观,则不对坐标轴刻…...
【进程与线程】
文章目录 一、实验目的二、实验内容与设计思想实验内容设计思路 三、实验代码实现四、总结 一、实验目的 1.深刻理解进程和线程的概念,掌握线程与进程在组成成分上的差别; 2.进一步认识并发执行的实质。 二、实验内容与设计思想 实验内容 用pipe()创…...
项目实战-飞机大战【补档】
和项目实战-贪吃蛇大作战【补档】-CSDN博客一样,这也是一个我在大一和网友完成的项目的补档。Dont waste your youth—time flies. 目录 1.工具&环境 2.项目简介 3.需求文档 4.流程图 5.产品原型图 6.可行性分析 7.源代码 8.实战效果 编辑 9.心得…...