ubuntu部署小笔记-采坑
ubuntu部署小笔记
- 搭建前端+控制端+后端
- 前端
- nginx反向代理
- 使用ubuntu部署nextjs项目
- 问题一 如何访问端口号
- 配置
- 后台运行该进程
- pm2
- 问题二 包体过大
- 生产环境下所需文件
- 问题三 部署在vercel时出现的问题
- 需要魔法
- 访问后端api时,必须使用==https==协议
- 电脑端访问正常,手机端出现异常
- 控制器
- 部署
- 路由正常,但是刷新后提示404的问题
- 相对路径问题
- 后端
- 部署
在实际将项目部署到linux服务器(ubuntu)的过程中遇到的一些小细节的问题
在这里记录一下
搭建前端+控制端+后端
找到一个大佬开源的项目nextjs+vite+java,是一个用起来功能蛮多的开源项目,蛮好用的,很多实用性的功能。前端使用nextjs,控制器使用vite,后端使用java,想试着在linux上部署
前端
nginx反向代理
题外话
之前一直没有去摸这方面相关的技术,因为一直不是很理解,也没有想去花时间接触,现在因为需要项目搭建,所以特意用了nginx来部署项目,也是为了提高自己的能力
那么啥叫反向代理,经过最近差不多一个星期的接触和使用,我的理解其实就像大家熟知的那样,是一个类似中转站的东西,将外部发送过来的访问和请求,以一定的规则,去访问内部的资源和项目。
但是这和使用apache2或者tomcat之类的又有什么区别呢,不也是外部通过ip或者域名的方式,访问到我们绑定的项目路径吗
其实还是有一些细微的差别,但我不知道能不能解释清楚。就我的认知,反向代理可以通过内部转换的方式,将外部的访问进行识别和处理,然后转发给内部的指定服务
具体的例子就是
我有一个前端项目 ,域名为www.xxx.com。这是我的一个主页
同时我有一个配套的前端管理项目,我希望也在这个域名下通过www.xxx.com/admin的方式进行访问
如果是我之前的能力,我的解决方式有两个
- 在这个域名上申请多一个二级域名,比如admin.xxx.com,然后将这个二级域名绑定到前端管理项目的路径上,然后进行访问
- 在前端项目的public路径下将前端管理项目拉进去,然后通过www.xxx.com/public/admin的方式进行访问
毋庸置疑,这两个方式都不能实现我的需求,但是,反向代理就可以实现
通过解析域名的后缀,也就是admin,根据配置转发到指定的服务,也就是前端管理项目
并且他可以通过配置不同的参数,将同一个访问下发转发到不同的服务器上,从而减轻服务器的压力
好的说了这么多,实际我在使用的过程中都遇到了哪些问题呢
使用ubuntu部署nextjs项目
也是第一次接触nextjs这个语言,听说是以react为基础开发的, 当然react我也没了解过
这个不重要,主要先讲部署的东西
nextjs通过npm指令进行依赖安装,调试和打包
npm install //这是安装
npm run dev //这是调试环境
npm run build//这是打包
npm run start//这是生产环境
问题一 如何访问端口号
配置
按照之前我部署前端的经验,就是打包,然后将打包出来的上传到服务器上,然后通过路径进行访问
但nextjs不同,他需要通过npm run start指令启动,并且自己占用端口号。这就把我难住了,我只试过直接访问静态资源的部署,这种端口号的可咋整,难道要我直接暴露端口号给用户吗,但是www.xxx.com:9003这种访问真的太丑了…于是我了解了一下发现apache和nginx都是支持转发端口号的,当程序员这么久也是才知道的Orz。这也就是反向代理的作用之一,当然不是只有nginx才有,apache,tomcat我相信都会有这个功能,只不过谈起```反向代理···脑子里第一反应就是nginx,所以就用了他
在哪里配置呢
在etc/nginx/下的nginx.conf或者sites-available下的default两个文件中其中一个配置下面的信息都行
我建议是在nginx.conf文件下配置,毕竟你可以少进入一个目录,而且这个文件名也一目了然
不过要注意的是nginx.conf文件
下需要在http{里配置下面的server信息}
server {# Nginx监听443端口(标准HTTPS端口)listen 443 ssl;# server_name _; # 通用域名server_name xxx.xxx.xxx; # 你的域名# SSL证书配置ssl_certificate ;//如果有的话ssl_certificate_key ;//如果有的话location / {proxy_pass http://localhost:9001; //通过转发的方式访问nextjs项目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;}# 后端APIlocation /api {# rewrite ^/api/(.*) /$1 break; # 去掉/api前缀proxy_pass http://localhost:9003;//通过转发的方式访问后端项目(java)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;}location /static/{root /var/www/;autoindex on; }}
后台运行该进程
由于直接执行npm run start的话,当我们远程连接关闭后,进程就会被自动kill掉了,所以我们需要将进程放在后台运行
有两个方案,一个是nohup,下面运行jar包会详细讲,这里说另一个方案
pm2
pm2好像是专门用来管理npm相关的项目的工具
pm2 start npm --name 项目名(自定义)--port=端口号(不写就默认使用3000)
命令大概是这样,还可以设置对应的运行内存啥的,有兴趣可以自己了解一下
运行了之后也可以实时查看日记
输入下面的指令就可以查看了
pm2 log 前面自定义的项目名
问题二 包体过大
回到正题,nextjs项目在build之后,包体非常大,就我目前在用的打包出来有768m,说实话,这比我用unity开发网页版的游戏都大了4、5倍…
然后因为包体太大了,我就尝试在服务器端直接拉去项目源码,然后在服务器上跑npm run dev
这一dev,没什么问题,npm run start
也没什么问题,但是用户一访问项目,开始编译的时候,2核2g的服务器直接就宕机了…一开始我要还以为是我的指令有问题,排除了好久…
原因就是npm run build
对读写性能的要求很大,在自己的电脑上处理没什么问题,大不了等多一会,但是云服务器上的配置撑在不了这么大的读写量,所以就直接宕机了…
无奈,于是只能乖乖的本地npm run build
后部署到服务器端,然后执行npm run start
好了,这下可以通过端口访问了,然后再用nginx转发的方式,将外部访问转到内部的这个端口号就行了
当然其中有一些小细节需要注意
生产环境下所需文件
.next
// npm run build 指令后生成
package.json
、package-lock.json
// 运行项目所需配置文件
当然只有这三个不出意外的话也是不行的, 因为npm run start执行时,会需要next相关的依赖
所以要么在项目根目录下执行npm install配置项目所需的环境依赖,要么就全局配置一下相关依赖。我是项目根目录中install的,这样有一个坏处就是生成的node_module文件也不小,我的是400+m,一个400m一个700m,好家伙一个前端项目就要1g了…前端发展的太快了…
如果以上操作都没问题的话,那么你的项目应该最终也能跑起来了
问题三 部署在vercel时出现的问题
原先因为包体过大在ubuntu上无法正常访问,所以通过github的方式在vercel上进行了部署,vercel有一些坑
vercel有什么好处,第一是免费,第二是一键帮你部署项目。只要关联github,选择对应的项目,vercel就会一键帮你构建和部署,只需要访问他提供给你的项目域名即可
需要魔法
vercel部署的项目需要魔法
才能访问,有梯子的话访问速度还蛮快的说实话。当然,你也可以通过cloudflare进行cname的设置将国内的域名绑定到vercel提供的域名上,毕竟有的白嫖谁不想呢是吧
但是
经过实际体验,就算通过cloudflare转发,访问速度也是完全看cloudflare的,时快时慢,体验非常不好…所以这也是为什么我想最后还是部署在自己服务器上段原因,
访问后端api时,必须使用https协议
http他是不给调用的,而且有些即使是https的图片资源他也无法正常加载
有一个投机的办法,如果你的域名还没有备案通过的话,可以先去ssl申请免费证书,然后给服务器上的nginx里配置后端服务的ssl文件, 虽然ssl是给域名准备的,不过还是能访问的,只是前面会提示你依旧是不安全的内容
电脑端访问正常,手机端出现异常
部署项目后在电脑端没问题,能跑通,但是在手机端就是怎么都调用不到后端的数据
这个问题也是排查了很久才发现的,原因就是因为上面的投机取巧的方式,https证书在国内浏览器上应该是有处理的,不安全的直接就给你拦截下来了,所以在手机端上的任何浏览器都访问不了(微博内置的可以打开,他会提示你https不安全,是否继续访问,也是这个提示才让我知道问题所在;不过这里也有一个问题,我后面用备案过的域名申请的ssl证书,在微博里打开项目他也提示不安全…真是奇了怪了hhh)
然后我就试着用已经备案过的域名去申请一个ssl,然后在nginx上绑定这个域名和对应的证书文件,发现手机端也正常了
控制器
控制器使用的是vite,这个说实话我也不了解,不过这个也可以用npm进行操作
浅浅的看了一下,直接跳转如何部署项目
vite通过指令
npm install
安装依赖
然后通过npm run dev
进行调试
npm run preview
进行预览
npm run build
进行打包
vite打包出来不需要额外的启动,直接访问项目路径即可
这一点还是挺好的
你只需看把打包出来的dist
文件上传到服务器即可
nginx配置一下访问路径
部署
server {listen 80 ;server_name _; # 或者你的域名# SSL证书配置# ssl_certificate /home/ssl/xxx.pem;# ssl_certificate_key /home/ssl/xxx.key;root /var/www/redfanswebadmin/dist;index index.php index.html index.htm;location / {try_files $uri $uri/ /index.html;}location ~ /\.ht {deny all;}}
路由正常,但是刷新后提示404的问题
这是由于没有在localtion /下配置下面的这行代码,导致项目内路由正常,但刷新时,因为没有配置从index.html进行访问,直接去访问项目资源,导致了404的问题
location / {try_files $uri $uri/ /index.html;}
相对路径问题
原先我是想在nginx配置文件中已经有的nextjs项目里添加一个/admin的转发,然后少申请一个二级域名的,但是vite项目中的一些资源文件和路由,使用的都是相对路径,也就是说,如果我用admin转发到了vite项目,由于相对路径的问题,很多的资源他访问的位置就不是vite的路径了
举个例子就是
vite项目中加载一些css和js的文件
使用的是/assets/...css
,如果使用/admin转发的话,他就会在nextjs项目的路径中去找对应的/assets/...css
文件,这显然是不对的,如果要改的话,需要在vite项目中一个一个找所有用了相对路径的配置,这会比较麻烦,所以就放弃了这个方式
当前做法
- 申请二级域名
- 在nginx中配置该二级域名以及对应的vite项目的资源路径
后端
后端使用的是java,我们的老熟人了,这个因为用了不少,所以基本没遇到什么问题
部署
- 在idea中通过maven的package命令直接一键生成jar包
- 上传到服务器,服务器需要有java
2.1 用tomcat运行(我没用)
2.2 使用linux的nohup指令后台运行
nohup java -jar jar包路径/xxx.jar &
后面的&就是后台运行的意思,不加的话就是远程连接的时候能用,关闭了这个指令就不执行了,所以是必须要加的
相关指令
nohup执行后会返回一个进程号,不需要的时候就用下面的指令加提供的进程号kill掉就行
kill -9 端口号
当然一般人也不会去记录这玩意儿,所以可以用下面的指令去找相关的服务器的进程号
ps -ef|grep 服务名(java,apache2,nginx等)
不过这样运行的话,你在jar包中设置的是什么端口号,那就是什么端口号,不能修改了
怎么查看日志,每个nohup执行后没有特别配置的话都会在输入命令的当前目录下生成nohup.out文件,可以通过下面的指令去查看实时日志
tail -f nohup.out
由于都是用的纯命令行,所以也就没有什么截图的必要了,指令真的只能多打才能记得住…
题外话
- 开源项目中也存在一些问题,如上传图片的路径需要设置,后台也需要配置,否则会出现上传后在前端无法访问的情况。其他问题暂时没有。哦开源的作者部署前端项目使用的是宝塔,我在win上安装了下宝塔,在运行前端项目时提示了一些python相关的异常导致无法正常运行,所以就没用宝塔了…
- nginx可以和apache之类的同时跑通,不过需要确保端口之间没有冲突,比如nginx先启动,默认占用了80端口,你的apache就得在配置文件中将80端口注释掉,否则apache会无法正常启动。然后应该怎么使用呢,举个例子:
2.1 nginx配置了一个域名www.xxx.com,指向apache中的其中一个服务(apahce中通过占用端口8888访问某个项目),nginx只需要在配置域名的server中的proxy_pass中输入localhost:8888,那么用户在输入www.xxx.com域名时,niginx就会通过转发的方式,将用户路由到apache中的8888端口号对应的项目。
2.2 当然这样有点多余,实际上你只需要在nginx中直接配置就行了。不过总会有需要这么用到的时候,所以就多提一下~ - 另外,部署之后,基本国内的app中内置的浏览器都能正常打开运行nextjs项目,唯独google浏览器不行…具体原因未知,一访问就提示client error之类的,然后再刷新也只能访问到网页的一些静态资源, 调用不到后端的接口。有遇到相同问题但解决了的大佬可以评论区留言解惑Orz
历时不到一个星期的时间,总算是成功将项目部署到了自己的服务器上,学习到了很多以前没接触过的知识和技术,学无止境…
也要感谢ai,基本都是边问边改的hhhhh
相关文章:
ubuntu部署小笔记-采坑
ubuntu部署小笔记 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs项目问题一 如何访问端口号配置后台运行该进程pm2 问题二 包体过大生产环境下所需文件 问题三 部署在vercel时出现的问题需要魔法访问后端api时,必须使用https协议电脑端访问正常…...
23. AI-大语言模型-DeepSeek简介
文章目录 前言一、DeepSeek是什么1. 简介2. 产品版本1. 类型2. 版本3. 参数规模与模型能力 3. 特征4. 三种访问方式1. 网页端和APP2. DeepSeek API 二、DeepSeek可以做什么1. 应用场景2. 文本生成1. 文本创作2. 摘要与改写3. 结构化生成 3. 自然语言理解与分析1. 语义分析2. 文…...
基于SpringBoot的智慧家政服务平台系统设计与实现的设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
Java NIO与传统IO性能对比分析
Java NIO与传统IO性能对比分析 在Java中,I/O(输入输出)操作是开发中最常见的任务之一。传统的I/O方式基于阻塞模型,而Java NIO(New I/O)引入了非阻塞和基于通道(Channel)和缓冲区&a…...
基于YOLO11深度学习的果园苹果检测与计数系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
基于SpringBoot畅购行汽车购票系统
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
基于 Spring Boot + 微信小程序的短文写作竞赛管理系统设计与实现(源码+文档)
大家好,今天要和大家聊的是一款基于 Spring Boot 微信小程序的“短文写作竞赛管理系统”的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于 Spring Boot 微信小程序的“短文写作竞赛管理系统”设计与实现的主要使用…...
pytest运行用例的常见方式及参数
标题pytest运行用例方式及参数 用例结构目录 “”" 在最外层目录下执行所有的用例 参数说明: -s:显示用例的打印信息 -v:显示用例执行的详细信息 –alluredir:指定allure报告的路径 –clean-alluredir:清除allure报告的路径 -n:指定并发的进程数 -x:出现一条用…...
Miniconda + VSCode 的Python环境搭建
目录: 安装 VScode 安装 miniconda 在VScode 使用conda虚拟环境 运行Python程序 1.安装 vscode 编辑器 官网链接:Visual Studio Code - Code Editing. Redefined 下载得到:,双击安装。 安装成功…...
图解MySQL【日志】——Redo Log
Redo Log(重做日志) 为什么需要 Redo Log? 1. 崩溃恢复 数据库崩溃时,系统通过 Redo Log 来恢复尚未写入磁盘的数据。Redo Log 记录了所有已提交事务的操作,系统在重启后会重做这些操作,以保证数据不会丢…...
Trae AI驱动开发实战:30分钟从0到1实现Django REST天气服务
目录 一、Trae 安装 1、Trae 介绍 2、Trae 安装 二、项目构建 1、项目背景与技术选型 2、开发环境准备 三、需求分析 1、功能模块设计 2、数据库设计 四、功能实现 1、用户系统开发 2、天气服务实现 3、测试用例编写 五、Trae 体验总结 随着人工智能技术的迅猛发…...
【Linux网络编程】IP协议格式,解包步骤
目录 解析步骤 1.版本字段(大小:4比特位) 2.首部长度(大小:4比特位)(单位:4字节) 🍜细节解释: 3.服务类型(大小:8比特…...
中诺CHINO-E G076大容量录音电话产品使用注意事项
•本机需插上随机配置的电源适配器才能正常工作,切勿插入其它的适配器,以免损坏话机; •当本机出现异常时,请按“Δ/上查”键3秒,屏幕弹出确定恢复,按“设置”键恢复出厂设置; 注:…...
2025最新智能优化算法:改进型雪雁算法(Improved Snow Geese Algorithm, ISGA)求解23个经典函数测试集,MATLAB
一、改进型雪雁算法 雪雁算法(Snow Geese Algorithm,SGA)是2024年提出的一种新型元启发式算法,其灵感来源于雪雁的迁徙行为,特别是它们在迁徙过程中形成的独特“人字形”和“直线”飞行模式。该算法通过模拟雪雁的飞行…...
✨ 索引有哪些缺点以及具体有哪些索引类型
索引的定义与原理 索引是数据库中用于提高数据检索效率的数据结构。它就像是书籍的目录,通过目录可以快速定位到所需内容的页码,而在数据库中,索引可以帮助数据库系统快速找到符合查询条件的数据行,而不必对整个表进行扫描。 其…...
Promptic:Python 中的 LLM 应用开发利器
Promptic 是一个基于 Python 的轻量级库,旨在简化与大型语言模型(LLMs)的交互。它通过提供简洁的装饰器 API 和强大的功能,帮助开发者高效地构建 LLM 应用程序。Promptic 的设计理念是提供 90% 的 LLM 应用开发所需功能,同时保持代码的简洁和易用性。 1. Promptic 的核心…...
本地部署DeepSeek R1大模型
一、安装软件 1.1 安装Ollama 你可以访问Ollama的官方网站https://ollama.com/download,选择适合你操作系统的安装包进行下载。老周这里是Mac系统,所以选择下载macOS系统。 1.2 安装cherry studio 前往官网https://cherry-ai.com/download下载对应操…...
搅局外卖,京东连出三张牌
明牌暗牌,都不如民牌。 作者|古廿 编辑|杨舟 “京东来整顿外卖了”,这一网络热梗正在成为外界对京东近期一系列动作的高度概括。 0佣金、五险一金、品质外卖,京东连出三张牌打破外卖市场的旧秩序。此前这三项分别对应着长期被社会所诟病的…...
【ELK】【Elasticsearch】数据查询方式
1. 简单查询(URI Search) 通过 URL 参数直接进行查询,适合简单的搜索场景。 示例: bash 复制 GET /index_name/_search?qfield_name:search_value 说明: index_name:索引名称。 field_name…...
基于 JavaWeb 的 Spring Boot 网上商城系统设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
C++17中的std::scoped_lock:简化多锁管理的利器
文章目录 1. 为什么需要std::scoped_lock1.1 死锁问题1.2 异常安全性1.3 锁的管理复杂性 2. std::scoped_lock的使用方法2.1 基本语法2.2 支持多种互斥锁类型2.3 自动处理异常 3. std::scoped_lock的优势3.1 避免死锁3.2 简化代码3.3 提供异常安全保证 4. 实际应用场景4.1 数据…...
Linux内核实时机制7 - 实时改造机理 - 软中断优化下
Linux内核实时机制7 - 实时改造机理 - 软中断优化下 https://blog.csdn.net/u010971180/article/details/145722641以下分别以Linux4.19、Linux5.4、Linux5.10、Linux5.15 展开分析,深入社区实时改造机理的软中断优化过程。https://blog.csdn.net/weixin_41028621/article/det…...
计算机网络:应用层 —— 文件传送协议 FTP
文章目录 FTP 是什么?FTP 的应用FTP 的基本工作原理主动模式被动模式 总结 FTP 是什么? 将某台计算机中的文件通过网络传送到可能相很远的另一台计算机中,是一项基本的网络应用,即文件传送。 文件传送协议FTP(File T…...
[笔记.AI]如何判断模型是否通过剪枝、量化、蒸馏生成?
以下摘自与DeepSeek-R1在线联网版的对话 一、基础判断维度 技术类型核心特征验证方法剪枝模型参数减少、结构稀疏化1. 检查模型参数量是否显著小于同类标准模型1 2. 分析权重矩阵稀疏性(如非零参数占比<30%)4量化权重/激活值精度降低、推理速度提升1…...
python: SQLAlchemy (ORM) Simple example using mysql in Ubuntu 24.04
mysql sql script: create table School 表 (SchoolId char(5) NOT NULL comment主鍵primary key,學校編號,SchoolName nvarchar(500) NOT NULL DEFAULT comment 學校名稱,SchoolTelNo varchar(8) NULL DEFAULT comment電話號碼,PRIMARY KEY (SchoolId) #主…...
【前端】【nuxt】nuxt优势(MVP开发),转换SSR与SPA模式
Nuxt.js 核心优势 自动化路由系统 无需手动配置路由:在 pages/ 目录下创建 .vue 文件即可自动生成路由,支持动态路由(如 pages/user/[id].vue → /user/:id)。嵌套路由:通过 parent.vue parent/child.vue 目录结构自动…...
洛谷B3619(B3620)
B3619 10 进制转 x 进制 - 洛谷 B3620 x 进制转 10 进制 - 洛谷 代码区: #include<algorithm> #include<iostream> #include<vector> using namespace std;int main(){int n,x;cin >> n >> x;vector<char> arry;while(n){if(…...
基于springboot+vue的酒店管理系统的设计与实现
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
android调用ffmpeg解析rtsp协议的视频流
文章目录 一、背景二、解析rtsp数据1、C层功能代码2、jni层的定义3、app层的调用 三、源码下载 一、背景 本demo主要介绍android调用ffmpeg中的接口解析rtsp协议的视频流(不解析音频),得到yuv数据,把yuv转bitmap在android设备上显…...
cursor使用记录
一、如何查看自己登录的是哪个账号 操作路径:Cursor -- 首选项 -- Cursor Setting (有快捷键) 二、状态修改为竖排(默认是横排) 默认如图展示,想要像vscode、idea等等在左侧竖着展示 操作路径࿱…...
Java 使用websocket
添加依赖 <!-- WebSocket 支持 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>添加配置类 Configuration public class WebSocketConfig {B…...
蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
Day 4:背包问题、最长递增子序列(LIS) 📖 一、动态规划(Dynamic Programming)简介 动态规划是一种通过将复杂问题分解成更小的子问题来解决问题的算法设计思想。它主要用于解决具有最优子结构和重叠子问题…...
在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源
插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...
seacmsv9 SQL注入漏洞(报错注入)
一、海洋CMS简介 海洋cms是为解决站长核心需求而设计的视频内容管理系统,一套程序自适应电脑、手机、平板、APP多个终端入口,无任何加密代码、安全有保障,是您最佳的建站工具。——来自seacms官网(简而言之就是专门搭建看片网站的…...
Java 中的内存泄漏问题及解决方案
在 Java 中,内存泄漏(Memory Leak)是指在程序运行过程中,某些对象已经不再使用,但由于引用仍然存在,这些对象无法被垃圾回收器回收,从而导致内存无法释放,最终可能导致系统性能下降甚…...
解决 ERROR: Failed building wheel for vllm Failed to build vllm
1. 完整报错 copying build\lib\vllm\model_executor\layers\fused_moe\configs\E256,N128,device_nameNVIDIA_H100_80GB_HBM3,dtypefp8_w8a8,block_shape[128,128].json -> build\bdist.win-amd64\wheel.\vllm\model_executor\layers\fused_moe\configs error: could not …...
从CNN到Transformer:遥感影像目标检测的未来趋势
文章目录 前言专题一、深度卷积网络知识专题二、PyTorch应用与实践(遥感图像场景分类)专题三、卷积神经网络实践与遥感影像目标检测专题四、卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】专题五、Transformer与遥感影像目标检测专题六、Transfo…...
ecovadis社会企业责任认证
EcoVadis 是一家全球性的企业社会责任 (CSR) 评级机构,旨在通过评估企业在环境、劳工与人权、商业道德和可持续采购等方面的表现,帮助提升其可持续性和社会责任实践。 EcoVadis 认证的核心内容 环境 评估企业在能源消耗、碳排放、废物管理等方面的表现。…...
使用 Docker 部署 Flask 应用
使用 Docker 部署 Flask 应用 一、引言 在现代软件开发中,应用的部署和环境管理是至关重要的环节。传统的部署方式常常会遇到 “在我机器上能运行,在你机器上不行” 的问题,而 Docker 的出现很好地解决了这个痛点。Docker 是一个用于开发、部署和运行应用程序的开放平台,…...
istio介绍补充以及使用篇
istio介绍补充以及使用篇 前言 介绍istio各个组件创建istio的方式手动注入自动注入side car 使用istio做流量灰度如有需要收藏的看官,顺便也用发财的小手点点赞哈,如有错漏,也欢迎各位在评论区评论! 前言 前篇istio介绍了引入ist…...
DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter19-表单脚本
十九、表单脚本 表单脚本 JavaScript 较早的一个用途是承担一部分服务器端表单处理的责任。虽然 Web 和 JavaScript 都已经发展了很多年,但 Web 表单的变化不是很大。由于不能直接使用表单解决问题,因此开发者不得不使用JavaScript 既做表单验证…...
如何使用深度学习进行手写数字识别(MNIST)
目录 手写数字识别(MNIST)1. 导入必要的库2. 加载和预处理数据3. 构建模型4. 编译模型5. 训练模型6. 评估模型7. 可视化训练过程(可选)代码说明运行环境总结当然可以!下面是一个使用Python和Keras(TensorFlow后端)实现的简单深度学习案例——手写数字识别(MNIST数据集)…...
【UCB CS 61B SP24】Lecture 5 - Lists 3: DLLists and Arrays学习笔记
本文内容为构建双向循环链表、使用 Java 的泛型将其优化为通用类型的链表以及数组的基本语法介绍。 1. 双向链表 回顾上一节课写的代码,当执行 addLast() 与 getLast() 方法时需要遍历链表,效率不高,因此可以添加一个指向链表末尾的索引&am…...
Unity Excel导表工具转Lua文件
思路介绍 借助EPPlus读取Excel文件中的配置数据,根据指定的不同类型的数据配置规则来解析成对应的代码文本,将解析出的字符串内容写入到XXX.lua.txt文件中即可 EPPlus常用API //命名空间 using OfficeOpenXml;//Excel文件路径 var fileExcel new File…...
kafka消费能力压测:使用官方工具
背景 在之前的业务场景中,我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试,测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。 我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部…...
算法题(74):Pow(x,n)
审题: 需要我们计算出x(double类型)的n次幂,并返回 思路: 方法一:递归 (1)首先我们的n分为正和负,对于负的我们需要将n转为正的进行运算后,用1.0除以运算结果…...
windwos与linux环境下Iperf3带宽测试工具的安装、使用
目录 一、前言 二、windows 2.1下载 2.2安装 2.3使用 2.3.1服务端 2.3.2客户端 2.3.3输出内容 1.客户端 2.服务端 2.4.相关命令 三、linux 3.1安装 3.2使用 1.服务端 2.客户端 3.输出内容 1.客户端 2.服务端 一、前言 在数字化浪潮下,网络性能…...
GCC编译器(含预处理/编译/汇编/链接四阶段详解)
GCC编译器(含预处理/编译/汇编/链接四阶段详解) 1. 预处理阶段(生成 .i 文件)2. 编译阶段(生成 .s 文件)3. 汇编阶段(生成 .o 文件)4. 链接阶段(生成可执行文件ÿ…...
20250221 NLP
1.向量和嵌入 https://zhuanlan.zhihu.com/p/634237861 encoder的输入就是向量,提前嵌入为向量 二.多模态文本嵌入向量过程 1.文本预处理 文本tokenizer之前需要预处理吗? 是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可…...