架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 11|回复: 0

[.NET Core] Nginx 反向代理 ASP.NET Core 使用 UDS 通信

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
需求:ASP.NET Core 已经支持监听 UDS(Unix domain socket),如果 Nginx 和 ASP.NET Core 站点在同一台服务器上面,其实可以直接走 UDS 进行通信,与使用 TCP/IP 相比,Unix 域套接字通常具有更少的开销和更快的传输速度。

回顾:
.NET/C# 进程之间基于 gRPC 和 Unix 域套接字通信
https://www.itsvse.com/thread-11051-1-1.html

Nginx 反向代理 php-fpm 使用 UDS 进行通信
https://www.itsvse.com/thread-11068-1-1.html

首先,新建 .NET 8 Web 应用,我封装了一个 ListenerUnix 扩展方法,代码如下:

在 Program.cs 调用如下:

代码主要是支持 urls 参数开启 http 监听和 Unix domain socket 监听,并且在应用启动成功后,将 Unix domain socket 文件权限设置为 777,否则 nginx 反向代理到 UDS 的时候,否则可能会报权限问题,如下:
2025/09/17 11:01:26 [crit] 2887135#0: *112497 connect() to unix:/var/run/itsvse.socket failed (13: Permission denied) while connecting to upstream, client: x.x.x.x, server: itsvse.com, request: "GET / HTTP/2.0", upstream: "http://unix:/var/run/itsvse.socket:/", host: "itsvse.com"

如果需要手动设置 777 权限命令如下:

发不到 Linux 服务器,启动成功如下图:

QQ截图20250918102539.jpg

使用 curl 测试,命令如下:

如下图:

QQ截图20250918102831.jpg

Nginx 配置如下:

反向代理路径设置了两个,一个带 :/,一个不带 :/,可以通过请求输出来区分出效果,如下图:

QQ截图20250918103248.jpg

参考:

超链接登录可见。
超链接登录可见。
超链接登录可见。




上一篇:Nginx 反向代理 php-fpm 使用 UDS 进行通信
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-9-18 12:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表