首页 > 系统相关 >Nginx被它打败了?

Nginx被它打败了?

时间:2024-01-26 11:33:29浏览次数:22  
标签:Control nginx 压测 Nginx add 我们 打败

Nginx被它打败了?

我们经常使用Nginx作为我们系统的代理,通常情况下是完全够用的,但是有时候业务的复杂性,我们也需要使用在网关中去代理中做一些业务,这个时候Nginx也可以使用lua脚本扩展,但是并非所有人都会lua,比如我这个.NET开发,这个时候我看到了微软开发的YARP这个SDK,果然还是微软给力,将这么牛逼的东西封装成SDK,供我们使用,下面我们对于NginxYarp进行简单的性能测试。

部署测试环境

我们提供nginx环境,proxy_pass代理的是我们的一个Gitea。

server {
    listen 80;
    server_name localhost;
    location / {
	    add_header 'Access-Control-Allow-Origin' 'http://localhost:8088';
	    add_header 'Cache-Control' 'public, max-age=604800';
	    add_header 'Access-Control-Allow-Credentials' 'true';
	    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
	    proxy_pass http://token-ai.cn:1001/; 
	  
    }
}

docker-compose.yml文件,我们使用默认的nginx镜像,然后映射我们的端口,然后执行compose文件

docker compose up -d
version: "2.1"
services:
  nginx:
    image: nginx
    restart: always
    ports:
      - 12001:80
    volumes:
      - ./conf.d/:/etc/nginx/conf.d/

下面我们构建我们的yarp代码,我们使用.NET 8

Progarm.cs文件

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddReverseProxy()
    .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
var app = builder.Build();
app.MapReverseProxy();
await app.RunAsync();

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ReverseProxy": {
    "Routes": {
      "route1" : {
        "ClusterId": "cluster1",
        "Match": {
          "Path": "{**catch-all}"
        }
      }
    },
    "Clusters": {
      "cluster1": {
        "Destinations": {
          "destination1": {
            "Address": "http://token-ai.cn:1001/"
          }
        }
      }
    }
  }
}

然后我们构建我们的程序,依赖框架构建(服务器需要安装.NET 8)

然后放置服务器当中,在执行之前给与可执行权限

chmod +x Yarp

然后执行我们的程序

./Yarp Urls="http://*:12002"

压测结果

nginx和yarp部署在同服务器下

使用压测工具ApiPost(压测工具是基于GO实现的)

压测条件: 并发数100

按压测时长:10s

服务器配置

Nginx压测:

Yarp压测

原接口压测:

Kestrel相关资料

https://github.com/xljiulang/KestrelApp

https://www.cnblogs.com/kewei/p/16955086.html

根据大佬的描述Kestrel跟nginx是一样在传输层的。

来着token的分享

技术交流群:737776595

标签:Control,nginx,压测,Nginx,add,我们,打败
From: https://www.cnblogs.com/hejiale010426/p/17988975

相关文章

  • 45从零开始用Rust编写nginx,静态文件服务器竟然还有这些细节
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,websocket代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透等,力争打造和nginx的性能。项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy静态文件服务器静态......
  • nginx高级篇(二)
    一.基于ip地址的访问限制allowxxxx;denyxxxx;他俩的放置顺序;限制只允许10.0.0.0~10.0.0.255范围的IP访问限制只允许10.0.0.0~10.0.0.255范围的IP访问(禁止其他网段的访问)创建虚拟主机,完成该功能[root@web-8/etc/nginx/conf.d]#catdeny-allow.confserver{listen2266......
  • Nginx日志检测分析工具 - WGCLOUD
    WGCLOUD可以对Nginx的日志文件进行全面分析,包括IP、sql注入、搜索引擎蜘蛛爬取记录、HTTP响应状态码、访问量最高的IP统计、扫描统计等效果如下图......
  • nginx-rtmp-module 支持 Enhancing RTMP HEVC(H.265)
     EnhancingRTMP,FLV2023年7月31号正式发布,主要支持了HEVC(H.265)、VP9、AV1视频编码,发布差不多半年了,很多开源项目已支持,最近打算播放和推送端也支持下,想找个支持的rtmpserver方便测试用,但没找到合适的。干脆自己改改nginx-rtmp-module代码,做个基本的支持,能正常推送和播放En......
  • 25从零开始用Rust编写nginx,序列化之serde是如何工作的
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy序......
  • nginx 如何强制跳转 https
    本项目nginx作为代理服务项目上线,客户说要加个安全证书,于是安全证书是加上了,可是htttp和https都能访问网站,客户要求不行必须强制用带有https的地址访问开整这是http和https都能访问的nginx.conf 关键配置  server{listen80;lis......
  • 解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
    跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-OriginPolicy),即只允许页面请求同源(相同协议、域名和端口)的资源,当JavaScript发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。解决跨域问题方案跨域问题......
  • nginx 配置文件(路由转发)
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;defau......
  • Nginx正向代理https
    Nginx支持正向代理http协议,但是不支持https协议,如果需要Nginx实现https协议的正向代理,需要使用第三方模块。参考地址:https://blog.csdn.net/weixin_43834401/article/details/130670792Nginx下载地址:https://nginx.org/en/download.html第三方模块下载地址:https://github.com/......
  • 44从零开始用Rust编写nginx,命令行参数的设计与解析及说明
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......