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

【原创】在高性能服务器上,使用受限用户运行Nginx,充当反向代理服务器[未完待续]

1 起因

在公共高性能服务器上运行Ollama+DeepSeek,如果按照默认配置启动Ollama程序,则自己在远程无法连接你启动的Ollama服务。

如果修改掉默认的配置,则会遇到你的Ollama被他人完全控制的安全风险。

不过,我们可以使用一个方向代理,并增加一些限制的方式,让我们从远程来访问。同时可以阻止未授权的人的访问。

现在的问题是,我们使用的高性能服务器是公共的,我们没有root权限。意味着我们很多软件我们不能安装。

不过,Nginx可以以普通用户的身份编译、安装和运行。然后使用这个Nginx做反向代理,添加安全验证。

  • 安装Nginx时,需要加载SSL模块,方可启用HTTPS。
  • 编译SSL模块时,需要 IPC::Cmd
  • 编译IPC::Cmd时,需要Perl
  • 为了使用Perl,则需要安装perlbrew

这里共有四项内容。

2 安装perlbrew

要使用这个工具来安装perl。

项目

https://github.com/gugod/App-perlbrew

用途:

Manage perl installations in your $HOME

最终文件

https://raw.githubusercontent.com/gugod/App-perlbrew/master/perlbrew-install

安装

curl -kL https://install.perlbrew.pl | bash

显示

[000000@gpu04 ~]$ curl -kL https://install.perlbrew.pl | bash% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   170  100   170    0     0     81      0  0:00:02  0:00:02 --:--:--    81
100  1689  100  1689    0     0    404      0  0:00:04  0:00:04 --:--:--  1566## Download the latest perlbrew## Installing perlbrew
Using Perl </usr/bin/perl>
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrewperlbrew root (~/perl5/perlbrew) is initialized.Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:source ~/perl5/perlbrew/etc/bashrcSimply run `perlbrew` for usage details.Happy brewing!## Installing patchperl## Done.

生效

source ~/perl5/perlbrew/etc/bashrc

3 安装Perl

查新可用Perl

[000000@gpu04 ~]$ perlbrew available
# perlperl-5.40.1   perl-5.38.3   perl-5.36.3   perl-5.34.3   perl-5.32.1   perl-5.30.3   perl-5.28.3   perl-5.26.3   perl-5.24.4   perl-5.22.4   perl-5.20.3   perl-5.18.4   perl-5.16.3   perl-5.14.4   perl-5.12.5   perl-5.10.1   perl-5.8.9   perl-5.6.2  

安装

这里,我选择的是perl-5.34.0,安装Perl,下面这一句执行的时间比较长。
试过最新版本,perl-5.40.1,报错了。

perlbrew --notest install perl-5.34.0

显示安装日志

可以再打开一个窗口执行如下指令,观察执行日志

tail -f ~/perl5/perlbrew/build.perl-5.34.0.log

安装结果

[000000@gpu04 ~]$ perlbrew --notest install perl-5.34.0
Fetching perl 5.34.0 as /public/home/000000/perl5/perlbrew/dists/perl-5.34.0.tar.gz
Download https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/perl-5.34.0.tar.gz to /public/home/000000/perl5/perlbrew/dists/perl-5.34.0.tar.gz
Installing /public/home/000000/perl5/perlbrew/build/perl-5.34.0/perl-5.34.0 into ~/perl5/perlbrew/perls/perl-5.34.0This could take a while. You can run the following command on another shell to track the status:tail -f ~/perl5/perlbrew/build.perl-5.34.0.logperl-5.34.0 is successfully installed.

切换perl版本

perlbrew switch perl-5.34.0

4 安装 cpanm

官网:
https://cpan.metacpan.org/

查询 App-cpanminus
在这里插入图片描述
下载源码
https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7048.tar.gz

curl -L https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7048.tar.gz -o App-cpanminus-1.7048.tar.gz

解压

tar -xzvf App-cpanminus-1.7048.tar.gz

编译、安装

cd App-cpanminus-1.7048
perl Makefile.PL INSTALL_BASE=~/perl5
make
make install

参数

export PATH=$HOME/perl5/bin:$PATH
#echo 'export PERL5LIB=$PERL5LIB:~/perl5/lib/perl5/' >> ~/.bashrc
#echo 'eval "$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)"' >> ~/.bashrc
source ~/.bashrc

4 IPC::Cmd

打开网站 https://metacpan.org/pod/IPC::Cmd
下载 https://cpan.metacpan.org/authors/id/B/BI/BINGOS/IPC-Cmd-1.04.tar.gz
在这里插入图片描述

解压

tar zxvf IPC-Cmd-1.04.tar.gz

配置

cd IPC-Cmd-1.04/

编译

perl Makefile.PL INSTALL_BASE=~/perl5
make
make install

发布

export PERL5LIB=$PERL5LIB:~/perl5/lib/perl5/

测试

$ cpan IPC::Cmd
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/public/home/xxxxxx/.cpan/Metadata'Database was generated on Sat, 15 Mar 2025 00:17:01 GMT
IPC::Cmd is up to date (1.04).

下载编译OpenSSL。、

下载

这里打开 https://openssl-library.org/source/
选择下载 openssl-3.4.1.tar.gz
在这里插入图片描述

解压

tar zxvf openssl-3.4.1.tar.gz

配置

cd openssl-3.4.1/
./config 
[000000@gpu04 openssl-3.4.1]$ ./config 
Configuring OpenSSL version 3.4.1 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************

2 安装Nginx

首先下载Nginx源码

https://nginx.org/en/download.html
注意,不要选版本太高的。公共服务器一般操作系统比较老,如果版本太高,可能编译不了(编译器版本太低)。

这里,我选择 https://nginx.org/download/nginx-1.27.4.tar.gz
在这里插入图片描述
如果你喜欢高版本的话,可以试试高版本的,基本流程都一样。

一般情况下高性能服务器只能在内网使用,不通外网,如果通外网的话,需要使用内网的代理服务器。

下载好源码后,将其上载到服务器。

解压

cd
tar zxvf nginx-1.27.4.tar.gz 

配置

这里一定要加上参数–prefix,否则就是系统目录,没权限写。接下来配置失败。

 cd nginx-1.27.4/
./configure --prefix=$HOME/nginx

执行结果如下:

......
Configuration summary+ using system PCRE library+ OpenSSL library is not used+ using system zlib library
......

可以看到没使用OpenSSL,那么 将来就不能使用https代理了。安全性不足。接下来还需加上OpenSSL库
添加 --with-http_ssl_module 模块。

这里可以用系统的ssl模块。我们也可以用自己编译的。这里我们用自己编译的。

./configure --prefix=$HOME/nginx --with-http_ssl_module --with-openssl=$HOME/openssl-3.4.1

编译

这里基本上不会出错,稍等一会儿即可完成。

make

安装

这一步也没啥。

make install

运行Nginx

[000000@gpu04 sbin]$ ./nginx -V
nginx version: nginx/1.27.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 3.4.1 11 Feb 2025
TLS SNI support enabled
configure arguments: --prefix=/public/home/000000/nginx --with-http_ssl_module --with-openssl=/public/home/000000/openssl-3.4.1

直接运行如下命令,一般会出错。80端口,没权限用。

$HOME/nginx/sbin/nginxnginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

结束进程

执行如下指令,找到自己运行的nginx程序

 ps aux | grep nginx

根据进程号,全部杀掉

kill -9 12345
kill -9 12121

修改配置

vi $HOME/nginx/conf/nginx.conf

做如下修改,将监听的80端口改成8088或其他高于1024的端口号。

erver {listen 8088;  # 改为 8080 或其他高于 1024 的端口server_name localhost;location / {root   html;index  index.html index.htm;}
}

再次运行

$HOME/nginx/sbin/nginx

然后,没啥结果

测试

执行如下指令,有结果输出,说明Nginx运行成功。

curl http://127.0.0.1:8088

设置反向代理

编辑配置文件1

vi $HOME/nginx/conf/nginx.conf

在http节中,添加如下内容:

		map $http_authorization $is_authorized {default 0;  # 默认未授权"Bearer YOUR_FIXED_TOKEN_HERE" 1;  # 替换为你的固定 Bearer Token}

在这里插入图片描述

添加PATH

export PATH=$HOME/nginx/sbin:$PATH
vi $HOME/nginx/conf/deepseek.0x99.top.conf
server
{listen 8088;listen 8443 ssl http2 ;server_name deepseek.0x99.top;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/deepseek.0x99.top;#CERT-APPLY-CHECK--START# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除include /www/server/panel/vhost/nginx/well-known/ds.0x88.top.conf;#CERT-APPLY-CHECK--END#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#HTTP_TO_HTTPS_STARTif ($server_port !~ 8443){rewrite ^(/.*)$ https://$host$1 permanent;}#HTTP_TO_HTTPS_ENDssl_certificate    /www/server/panel/vhost/cert/deepseek.0x99.top/fullchain.pem;ssl_certificate_key    /www/server/panel/vhost/cert/deepseek.0x99.top/privkey.pem;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;ssl_prefer_server_ciphers on;ssl_session_tickets on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;add_header Strict-Transport-Security "max-age=31536000";error_page 497  https://$host$request_uri;#SSL-END#ERROR-PAGE-START  错误页配置,可以注释、删除或修改error_page 404 /404.html;#error_page 502 /502.html;#ERROR-PAGE-END#PHP-INFO-START  PHP引用配置,可以注释或修改#清理缓存规则location ~ /purge(/.*) {proxy_cache_purge cache_one $host$1$is_args$args;#access_log  /www/wwwlogs/ds.0x88.top_purge_cache.log;}# 检查是否授权if ($is_authorized != 1) {return 401 "Unauthorized: Invalid Bearer Token";  # 返回 401 错误}#引用反向代理规则,注释后配置的反向代理将无效include /www/server/panel/vhost/nginx/proxy/deepseek.0x99.top/*.conf;include enable-php-00.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/deepseek.0x99.top.conf;#REWRITE-END#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}#禁止在证书验证目录放入敏感文件if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {return 403;}access_log  /www/wwwlogs/deepseek.0x99.top.log;error_log  /www/wwwlogs/deepseek.0x99.top.log;
}

相关文章:

【原创】在高性能服务器上,使用受限用户运行Nginx,充当反向代理服务器[未完待续]

1 起因 在公共高性能服务器上运行OllamaDeepSeek&#xff0c;如果按照默认配置启动Ollama程序&#xff0c;则自己在远程无法连接你启动的Ollama服务。 如果修改掉默认的配置&#xff0c;则会遇到你的Ollama被他人完全控制的安全风险。 不过&#xff0c;我们可以使用一个方向…...

Linux 下 MySQL 8 搭建教程

一、下载 你可以从 MySQL 官方下载地址 下载所需的 MySQL 安装包。 二、环境准备 1. 查看 MySQL 是否存在 使用以下命令查看系统中是否已经安装了 MySQL&#xff1a; rpm -qa|grep -i mysql2. 清空 /etc/ 目录下的 my.cnf 执行以下命令删除 my.cnf 文件&#xff1a; [roo…...

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…...

MinIO问题总结(持续更新)

目录 Q: 之前使用正常&#xff0c;突然使用空间为0B&#xff0c;上传文件也是0B&#xff08;部署在k8s中&#xff09;Q: 无法上传大文件参考yaml Q: 之前使用正常&#xff0c;突然使用空间为0B&#xff0c;上传文件也是0B&#xff08;部署在k8s中&#xff09; A: 1、检查pod状态…...

STM32配套程序接线图

1 工程模板 2 LED闪烁 3LED流水灯 4蜂鸣器 5按键控制LED 6光敏传感器控制蜂鸣器 7OLED显示屏 8对射式红外传感器计次 9旋转编码器计次 10 定时器定时中断 11定时器外部时钟 12PWM驱动LED呼吸灯 13 PWM驱动舵机 14 PWM驱动直流电机 15输入捕获模式测频率 16PWMI模式测频率占空…...

深入理解Linux网络随笔(七):容器网络虚拟化--Veth设备对

深入理解Linux网络随笔&#xff08;七&#xff09;&#xff1a;容器网络虚拟化 微服务架构中服务被拆分成多个独立的容器&#xff0c;docker网络虚拟化的核心技术为&#xff1a;Veth设备对、Network Namespace、Bridg。 Veth设备对 veth设备是一种 成对 出现的虚拟网络接口&…...

实战指南:鸿蒙ArkTS中实现列表下拉刷新与触底加载的完整解析

前言&#xff1a; 在移动应用开发中&#xff0c;下拉刷新和触底加载更多是提升用户体验的核心功能。鸿蒙ArkUI框架通过Refresh组件和List组件的onReachEnd事件&#xff0c;为开发者提供了简洁高效的实现方案。本文将通过代码示例&#xff0c;详解如何利用ArkTS实现这两个功能。…...

【栈数据结构应用解析:常见算法题详细解答】—— Leetcode

文章目录 栈的模拟实现删除字符串中的所有相邻重复项比较含退格的字符串基本计算器||字符串解码验证栈序列 栈的模拟实现 #include <iostream>using namespace std;const int N 1e5 10;// 创建栈 int stk[N], n;// 进栈 - 本质就是顺序表里面的尾插 void push(int x) …...

Git常用操作之GitLab

Git常用操作之GitLab 小薛博客官网&#xff1a;小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前&#xff0c;请配置一个新的…...

2025探索短剧行业新可能报告40+份汇总解读|附PDF下载

原文链接&#xff1a;https://tecdat.cn/?p41043 近年来&#xff0c;短剧以其紧凑的剧情、碎片化的观看体验&#xff0c;迅速吸引了大量用户。百度作为互联网巨头&#xff0c;在短剧领域积极布局。从早期建立行业专属模型冷启动&#xff0c;到如今构建完整的商业生态&#xf…...

各省水资源平台 水资源遥测终端机都用什么协议

各个省水资源平台 水资源遥测终端机 的建设大部分从2012年开始启动&#xff0c;经过多年建设&#xff0c;基本都已经形成了稳定的通讯要求&#xff1b;河北瑾航科技 遥测终端机&#xff0c;兼容了大部分省市的通讯协议&#xff0c;如果需要&#xff0c;可以咨询和互相学习&…...

C#+EF+SqlServer性能优化笔记

文章目录 前言一、C#EF 代码优化1.接口代码改异步2.查询异步&#xff0c;只查询需要的数据3.查询数据判断时4.直接使用sql查询 二、数据库优化1.减少关联表&#xff0c;一些基础数据&#xff0c;字典表可以考虑放到redis中&#xff0c;在代码中映射2.增加索引&#xff0c;删除无…...

列表动态列处理

1、在initialize()方法里&#xff0c;获取列表控件&#xff0c;添加CreateListColumnsListener监听 public void initialize(){ BillList billlist(BillList)this.getControl("billlistap"); billlist.addCreateListColumnsListener(this::beforeCreateListColumns)…...

电机控制常见面试问题(十二)

文章目录 一.电机锁相环1.理解锁相环2.电机控制中的锁相环应用3.数字锁相环&#xff08;DPLL&#xff09; vs 模拟锁相环&#xff08;APLL&#xff09;4.锁相环设计的关键技术挑战5.总结 二、磁链观测1.什么是磁链&#xff1f;2.为什么要观测磁链&#xff1f;3.怎么观测磁链&am…...

芯驿电子 ALINX 亮相德国纽伦堡,Embedded World 2025 精彩回顾

2025年3月13日&#xff0c;全球规模最大的嵌入式行业盛会——德国纽伦堡国际嵌入式展&#xff08;embedded world 2025&#xff09;圆满落幕。 在这场汇聚全球 950 家展商、3 万余专业观众的科技盛宴中&#xff0c;芯驿电子 ALINX 展位人头攒动&#xff0c;多款尖端产品吸引客户…...

西门子S7-1200 PLC远程上下载程序方案

西门子S7-1200 PLC远程上下载程序方案&#xff08;巨控GRM552YW-C模块&#xff09; 三步完成配置 | 全球适用 | 稳定高效 三步快速完成远程配置 硬件部署 准备巨控GRM552YW-CHE模块1台&#xff0c;通过网口连接西门子S7-1200 PLC以太网口。 模块支持4G/5G/Wi-Fi/网线接入外网…...

MFC窗口的创建/消息映射机制

mfc.h #include<afxwin.h>//mfc头文件//应用程序类 class MyApp:public CWinApp //继承于应用程序类 { public://程序入口virtual BOOL InitInstance(); };//框架类 class MyFrame:public CFrameWnd { public:MyFrame();//声明宏 提供消息映射机制DECLARE_MESSAGE_MAP()…...

【每日学点HarmonyOS Next知识】tab对齐、相对布局、自定义弹窗全屏、动画集合、回到桌面

1、HarmonyOS Tabs 是否能支持 tabbar 居左对齐&#xff1f; 当前方案为自定义tabbar实现&#xff0c;示例demo&#xff1a; Entry Component struct TabsExample {State tabArray: Array<number> [0, 1,2]State focusIndex: number 0State pre: number 0State inde…...

如何在TikTok网页版切换地区设置

今天我们来聊聊如何在TikTok网页版上更改地区设置。TikTok作为全球知名的短视频社交应用&#xff0c;不仅仅局限于某个国家或地区。修改地区设置可以让你探索来自不同地方的内容&#xff0c;享受更为丰富的社交互动体验。那么&#xff0c;具体该如何操作呢&#xff1f;让我一步…...

redis工具类

前言 Redis 是一个高性能的键值存储系统&#xff0c;广泛应用于缓存、消息队列、实时分析等场景。为了更高效地操作 Redis&#xff0c;许多开发者会选择使用 Redisson 客户端库。 依赖配置 首先确保您的项目中已经包含了 Redisson 的最新版本&#xff08;如 3.44.0&#xff…...

【Python办公】Excel通用匹配工具(双表互匹)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…...

安徽省青少年信息学奥林匹克竞赛初中组第1题LuoguP762

先放题目: 【题目背景】.你 .可 .以 .选 .择 .跳 .过 .背 .景 .部 .分。初春的一天&#xff0c;正是乍暖还寒时候&#xff0c;狂风乍起。小可可裹紧了单薄的外衣&#xff0c;往小雪家中赶去。“今天真不是个出门的时候啊&#xff01;”小可可感叹道。“但是我还有东西要买………...

AVL树的平衡算法的简化问题

AVL树是一种紧凑的二叉查找树。它的每个结点&#xff0c;都有左右子树高度相等&#xff0c;或者只相差1这样的特性。文章https://blog.csdn.net/aaasssdddd96/article/details/106291144给出了一个例子。 为了便于讨论&#xff0c;这里对AVL树的结点平衡情况定义2个名称&#…...

NFS实验配置笔记

NFS NFS服务 nfs&#xff0c;最早是Sun这家公司所发展出来的&#xff0c;它最大的功能就是可以透过网络&#xff0c;让不同的机器&#xff0c;不同的操作系统&#xff0c;进行实现文档的共享。所以你可以简单的将他看做是文件服务器。 实验准备 ①先准备一个服务器端的操作…...

C盘清理技巧分享:释放空间,提升电脑性能

目录 1. 引言 2. C盘空间不足的影响 3. C盘清理的必要性 4. C盘清理的具体技巧 4.1 删除临时文件 4.2 清理系统还原点 4.3 卸载不必要的程序 4.4 清理下载文件夹 4.5 移动大文件到其他盘 4.6 清理系统缓存 4.7 使用磁盘清理工具 4.8 清理Windows更新文件 4.9 禁用…...

【云馨AI-大模型】RAGFlow功能预览:Dify接入外部知识库RAGFlow指南

介绍 Dify介绍 开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力&#xff0c;轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。官网&#xff1a;https://dify.ai/zh RAGFlow介绍 RAGFlow 是一款基于深度文档理解构建的…...

大模型学习笔记------Llama 3模型架构之旋转编码(RoPE)

大模型学习笔记------Llama 3模型架构之旋转编码&#xff08;RoPE&#xff09; 1、位置编码简介1.1 绝对位置编码1.2 相对位置编码 2、旋转编码&#xff08;RoPE&#xff09;2.1 基本概念---旋转矩阵2.2 RoPE计算原理2.2.1 绝对位置编码2.2.2 相对位置编码 3、旋转编码&#xf…...

Anthropic 的模型

Anthropic 的模型&#xff08;特别是 Claude 系列&#xff09;之所以在性能和推理能力上表现强劲&#xff0c;可以从技术设计、研究理念、训练方法以及应用优化等多个方面进行详细分析。以下是基于当前信息&#xff08;截至 2025 年 3 月 13 日&#xff09;和行业趋势的深入剖析…...

初探大模型开发:使用 LangChain 和 DeepSeek 构建简单 Demo

最近&#xff0c;我开始接触大模型开发&#xff0c;并尝试使用 LangChain 和 DeepSeek 构建了一个简单的 Demo。通过这个 Demo&#xff0c;我不仅加深了对大模型的理解&#xff0c;还体验到了 LangChain 和 DeepSeek 的强大功能。下面&#xff0c;我将分享我的开发过程以及一些…...

FPGA初级项目10——基于SPI的DAC芯片进行数模转换

FPGA初级项目10——基于SPI的DAC芯片进行数模转换 DAC芯片介绍 DAC 芯片&#xff08;数字模拟转换器&#xff09;是一种将数字信号转换为连续模拟信号&#xff08;如电压或电流&#xff09;的集成电路&#xff0c;广泛应用于电子系统中&#xff0c;连接数字世界与模拟世界。 …...

【论文解读】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…...

unity基础——线段与拖尾

1、LineRenderer&#xff08;线段渲染器&#xff09; 为空物体加上组件添加材质 选择默认线段的材质 Default—Line Color&#xff1a;可以修改颜色Corner Vertices&#xff1a;角顶点 圆滑度 End Cap Vertices&#xff1a;边缘顶点 线段编辑 1、可以移动线段点的位置&#xf…...

【服务器知识】Nginx路由匹配规则说明

Nginx路由匹配规则说明 **一、Nginx路由匹配核心机制****二、匹配规则语法详解**1. **精确匹配 ()**2. **前缀匹配 (^~ 或 /)**3. **正则匹配 (~ 或 ~*)**4. **通配符匹配 (*)** **三、路由匹配优先级顺序****四、高级路由技巧**1. **条件判断 (if语句)**2. **路径重写 (rewrit…...

Python----数据可视化(Pyecharts三:绘图二:涟漪散点图,K线图,漏斗图,雷达图,词云图,地图,柱状图折线图组合,时间线轮廓图)

1、涟漪特效散点图 from pyecharts.globals import SymbolType from pyecharts.charts import EffectScatter from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.globals import ThemeType # 绘制图表 es (EffectScatter(init_optsop…...

机器学习中的梯度下降是什么意思?

梯度下降&#xff08;Gradient Descent&#xff09;是机器学习中一种常用的优化算法&#xff0c;用于最小化损失函数&#xff08;Loss Function&#xff09;。通过迭代调整模型参数&#xff0c;梯度下降帮助模型逐步逼近最优解&#xff0c;从而提升模型的性能。 1.核心思想 梯…...

C语言中的字符串与数组的关系

在C语言中,字符串和数组之间有着紧密的关系。理解它们的区别和联系对于编写高效且可靠的代码至关重要。在本篇博文中,我们将详细分析字符串和数组在C语言中的概念、它们的关系以及如何在编程中应用它们。 一、字符串与数组的基础知识 1.1 数组概念 在C语言中,数组是一组相…...

Ubuntu 18,04 LTS 通过APT安装mips64el的交叉编译器。

安装 g-5v的版本&#xff1a; sudo apt update sudo apt install g-5-mips64el-linux-gnuabi64 How to Install g-5-mips64el-linux-gnuabi64 in Ubuntu 18.04 安装 gcc/g-7v的版本&#xff1a; sudo apt-get install gcc-mips64el-linux-gnu* g-mips64el-linux-gnu* -y 安装…...

MySQL 衍生表(Derived Tables)

在SQL的查询语句select …. from …中&#xff0c;跟在from子句后面的通常是一张拥有定义的实体表&#xff0c;而有的时候我们会用子查询来扮演实体表的角色&#xff0c;这个在from子句中的子查询会返回一个结果集&#xff0c;这个结果集可以像普通的实体表一样查询、连接&…...

C++ vector 核心知识:常用操作与示例详解

在C编程中&#xff0c;vector 是标准模板库&#xff08;STL&#xff09;中最常用的容器之一。它以其动态数组的特性、高效的尾部操作和便捷的随机访问能力&#xff0c;成为处理动态数据的首选工具。无论是初学者还是经验丰富的开发者&#xff0c;掌握 vector 的使用方法和性能优…...

不同开发语言对字符串的操作

一、字符串的访问 Objective-C: 使用 characterAtIndex: 方法访问字符。 NSString *str "Hello, World!"; unichar character [str characterAtIndex:0]; // 访问第一个字符 H NSLog("%C", character); // 输出: H NSString 内部存储的是 UTF-16 编…...

Qt从入门到入土(十) -数据库操作--SQLITE

认识 数据库是用于存储、管理和检索数据的系统化集合。它是一种按照特定结构组织数据的存储方式&#xff0c;通过软件&#xff08;数据库管理系统&#xff0c;DBMS&#xff09;来实现数据的高效存储、查询、更新和管理。通过文件存储数据适用于少量的数据&#xff0c;而当拥有…...

硬件驱动——51单片机:独立按键、中断、定时器/计数器

目录 一、独立按键 1.原理 2.封装函数 3.按键控制点灯 数码管 二、中断 1.原理 2.步骤 3.中断寄存器IE 4.控制寄存器TCON 5.打开外部中断0和1 三、定时器/计数器 1.原理 2.控制寄存器TCON 3.工作模式寄存器TMOD 4.按键控制频率的动态闪烁 一、独立按键 1…...

pgsql创建新用户并赋只读权限

在 PostgreSQL 中&#xff0c;为新用户赋予只读权限的步骤如下&#xff1a; —### 1. 创建新用户首先&#xff0c;创建一个新用户&#xff08;角色&#xff09;&#xff0c;并设置密码&#xff1a;sqlCREATE ROLE 用户名 WITH LOGIN PASSWORD 密码;例如&#xff1a;sqlCREATE R…...

【量化策略】动量突破策略

【量化策略】动量突破策略 &#x1f680;量化软件开通 &#x1f680;量化实战教程 技术背景与应用场景 动量突破策略是一种基于市场趋势的量化交易策略&#xff0c;它通过识别和利用资产价格的持续上升或下降趋势来获取利润。这种策略特别适用于那些价格波动较大、趋势明显…...

QT编程之QGIS

一、QGIS介绍 Quantum GIS&#xff08;QGIS&#xff09;是开源地理信息系统桌面软件&#xff0c;使用GNU&#xff08;General Public License&#xff09;授权&#xff0c; 属于 Open Source eospatial Foundation&#xff08; OSGeo &#xff09;的官方计划。在 GNU 授权下&am…...

LangChain-chatchat 0.3.x入门级教程

前言 一种利用 langchain 思想实现的基于本地知识库的问答应用&#xff0c;目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。该项目支持市面上主流的开源 LLM、 Embedding 模型与向量数据库&#xff0c;可实现全部使用开源模型离线私有部署。…...

Vi/Vim命令详解:高效文本编辑的利器

Vi/Vim命令详解&#xff1a;高效文本编辑的利器 Vi和Vim是Unix/Linux系统中极为流行的文本编辑器&#xff0c;它们以其强大的功能和高效的操作方式赢得了广大用户的喜爱。无论是对于程序员、系统管理员还是普通用户&#xff0c;掌握Vi/Vim的基本命令和高级技巧都是非常有必要的…...

【前端三剑客】万字总结JavaScript

一、初识JavaScript 1.1 JavaScript 的作用 表单动态校验&#xff08;密码强度检测&#xff09; &#xff08; JS 产生最初的目的 &#xff09;网页特效服务端开发(Node.js)桌面程序(Electron)App(Cordova)控制硬件-物联网(Ruff)游戏开发(cocos2d-js) 1.2 HTML/CSS/JS 的关系…...

MySQL | MySQL表的增删改查(CRUD)

目录 前言&#xff1a;什么是 CRUD ?一、Creat 新增1.1 语法1.2 示例1.2.1 单行数据全列插入1.2.2 单行数据指定列插入1.2.3 多行数据指定列插入 二、Retrieve 检索2.1 语法2.2 示例2.2.1 全列查询2.2.2 指定列查询2.2.3 查询字段为表达式2.2.4 结果去重查询2.2.5 where条件查…...

【愚公系列】《高效使用DeepSeek》003-DeepSeek文档处理和其他顶级 AI模型的区别

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...