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

基于uWebsockets开源库实现http文件上传功能

一 实现一个http服务

使用uWebsockets库实现一个http服务请参考下面链接:

https://blog.csdn.net/kk821521286/article/details/154841882https://blog.csdn.net/kk821521286/article/details/154841882

二 配置nginx反向代理

下载nginx源码

# 下载源码包 wget https://nginx.org/download/nginx-1.26.2.tar.gz

# 解压源码包 tar -zxvf nginx-1.26.2.tar.gz

# 进入源码目录 cd nginx-1.26.2

配置编译参数

./configure \ --prefix=/usr/local/nginx \ # Nginx 安装目录

--with-http_ssl_module \ # 开启 SSL 模块(核心)

--with-http_v2_module \ # 可选:开启 HTTP/2 (依赖 SSL)

--with-pcre \ # 启用 PCRE 正则表达式

--with-zlib # 启用 zlib 压缩

编译并安装

# 编译(-j 后接CPU核心数,加快编译速度,如 -j4)

make -j$(nproc)

# 安装

make install

验证SSL模块是否生效

# 进入 Nginx 安装目录的 sbin 目录

cd /usr/local/nginx/sbin

# 查看 Nginx 编译模块

./nginx -V

如下图,nginx已支持ssl

nginx.conf配置文件添加反向代理配置

# HTTPS server     #     server {         listen       10010 ssl;         server_name  localhost;         ssl_certificate      misc/cert.pem;         ssl_certificate_key  misc/key.pem;         ssl_protocols TLSv1.2 TLSv1.3;     # 文件上传大小限制(关键配置)      client_max_body_size 100M; # 允许100MB文件      client_body_buffer_size 128k; # 缓冲区大小      client_body_timeout 60; # 超时时间(秒)     # 关键配置:确保使用HTTP/1.1      proxy_http_version 1.1;     proxy_set_header Connection "";         location / {             root   html;             index  index.html index.htm;         }     location /perimeter/upload {             proxy_pass http://127.0.0.1:10011;             proxy_set_header Host $host;             proxy_set_header X-Real-IP $remote_addr;             proxy_buffering off;  # 禁用缓冲,适合文件上传             chunked_transfer_encoding off;  # 禁用分块传输         }     }

三 关键代码实现

main.cpp

#include <QCoreApplication> #include "src/App.h" #include <openssl/ssl.h> #include <openssl/err.h> /* Helpers for this example */ #include "helpers/AsyncFileReader.h" #include "helpers/AsyncFileStreamer.h" #include "helpers/Middleware.h" #define OPTPARSE_IMPLEMENTATION #include "helpers/optparse.h" #include "httphandle.h" int main(int argc, char *argv[]) { int port = 10011; uWS::SocketContextOptions ssl_options = { #if 1 .key_file_name = "misc/key.pem", .cert_file_name = "misc/cert.pem", .passphrase = "1234", // 证书密码(如有) .dh_params_file_name = nullptr, // DH参数文件(可选) .ca_file_name = nullptr, // CA证书文件(设为nullptr禁用客户端证书验证) .ssl_prefer_low_memory_usage = 0 //
http://www.jsqmd.com/news/411409/

相关文章:

  • 钛合金核心认知|为什么成为高端领域刚需 - 非研科技
  • AI神话破灭?最新研究:96%的工作任务,AI做得比人差
  • 收藏!一文彻底搞懂Transformer中的归一化技术,大厂面试必考
  • 2026高低压开关柜与箱式变电站厂家推荐:实力厂家矩阵,点亮智能电力工程新图景 - 深度智识库
  • 2026年充电桩厂家推荐排行榜:液冷/超级/智能柔性充电桩技术实力与市场口碑深度解析 - 品牌企业推荐师(官方)
  • 也许你需要一个管理 Agent Skills 的可视化 App
  • 上海洁净板喷漆修复价格多少钱,哪家性价比高 - mypinpai
  • 2026年三苯基膦好用的品牌推荐,华威化工位居前列 - 工业品牌热点
  • 多种优化算法优化WSN网络覆盖附Matlab实现
  • 聊聊大模型推理系统之 FlowPrefill:清华北科大团队如何突破队头阻塞瓶颈,将 LLM 服务吞吐量提升 5.6 倍?
  • 中央空调在江浙粤地区好用吗,有哪些靠谱品牌推荐 - 工业设备
  • 爱思唯尔(Elsevier)全新系统投稿流程
  • 交稿前一晚!AI论文网站 千笔ai写作 VS 笔捷Ai,本科生首选!
  • 深度学习搜索Agent架构精讲:从迭代到递归,一篇就够了,值得反复研读
  • 盘点深圳本地靠谱的GEO推广服务,哪家性价比高值得推荐? - 工业品网
  • 反序列化漏洞分析讲解,零基础入门到精通,收藏这篇就够了
  • 全国房车展大通房车价格如何,选购时要考虑什么 - mypinpai
  • 家居软装公司性价比对比,昆明优选软装优势在哪 - 工业品牌热点
  • 多目标粒子群优化(MOPSO)进行多目标巡检附matlab代码
  • 论文浅尝 | 基于知识图谱检索的LLM推荐系统生成(ACL2025)
  • 2026年 加气机厂家推荐排行榜:LNG/LPG/CNG/汽车/天然气/压缩天然气加气机品牌实力与技术创新深度解析 - 品牌企业推荐师(官方)
  • 分析相臣律所卢彦民离婚律师,专业素养和胜诉率高不高 - 工业品牌热点
  • 全栈开发的演变:从LAMP到MEAN再到现代JavaScript
  • 揭秘2026年深圳靠谱的翻译公司排名,求推荐翻译机构排名 - 工业推荐榜
  • 讲讲南京靠谱的企业认证服务公司有哪些,江苏中安质环认证中心推荐吗 - 工业推荐榜
  • 2026年加油机厂家推荐排行榜:智能加油机、物联网加油机、自助加油机、大流量加油机、全自动加油机,专业实力与创新技术深度解析 - 品牌企业推荐师(官方)
  • 2026年好用的医疗诊断专利AI、食品安全专利AI、佰腾专利AI替代品推荐 - myqiye
  • 运维和AI助手的吵架记录:第4条笑崩百万程序员
  • 2026年江阴AI搜索优化服务排行榜,AI搜索优化哪家强 - 工业设备
  • 哨兵模式 (Sentinel) 集群模式 (Cluster)区别