Ubuntu 服务器使用Nginx 代理.NetCore WebApi服务

avatar
作者
筋斗云
阅读量:2

1,安装Nginx

        可参考:Linux Ubuntu 安装nginx-CSDN博客

2,安装.NetCore SDK 或.NetCore 运行时

        可参考:Ubuntu 安装.Net Core SDK-CSDN博客

        

3,VS2022 发布项目,选择项目目标运行时为适合Linux 的

        

4,在服务器上的地址为/usr/local/nginx/html的文件夹下新建该项目的文件夹,比如testapi

5,将VS发布的文件使用FTP服务上传到该文件夹下

6,找到项目的启动主文件,我的是:LinuxTest2.dll,使用 dotnet LinuxTest2.dll  命令启动webapi

7,项目启动后的监听地址为:localhost:5000,我们需要使用nginx的反向代理来监听该5000端口

8,修改nginx的配置文件:sudo vim /usr/local/nginx/conf/nginx.conf,找到server 块,

在location 块中写上:

proxy_pass http://localhost:5000;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

解释:

  • listen 80; 表示Nginx监听80端口的HTTP请求。
  • location / 块定义了对于所有请求的处理,这里的转发规则适用。
  • proxy_pass http://localhost:5000; 表示将请求转发到本地的5000端口上。
  • proxy_http_version 1.1; 和以下几行都是设置HTTP头部,以确保WebSockets之类的协议可以正常工作。

使用命令:sudo ./nginx -t 来检查配置文件是否有错

使用命令:sudo ./nginx -s reload  重新加载配置文件,或使用命令 

此时,可使用ip:80 来访问指定的api

PS:

如果把ssh窗口关闭后,项目进程也会关闭,此时

可将dotnet LinuxTest2.dll 设置为后台进程:

可参考博客:ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识) - Savorboard - 博客园 (cnblogs.com)

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!