ASP.Net Core Web API使用Nginx部署

本文作为ASP.Net Core Web API学习的一部分,介绍了如何使用Nginx进行简单的负载配置。

1、将ASP.Net Core Web API项目发布到不同的服务器

例如,将项目发布到本地不同的文件夹中。

2、使用dotnet命令启动已发布的ASP.Net Core Web API服务

-> dotnet WebApi.dll --urls="http://*:3001" --ip="127.0.0.1" --port=3001

-> dotnet WebApi.dll --urls="http://*:3002" --ip="127.0.0.1" --port=3002

-> dotnet WebApi.dll --urls="http://*:3003" --ip="127.0.0.1" --port=3003

3、安装Nginx

在http://nginx.org/en/download.html下载安装Nginx稳定版,这里安装的版本是1.18.0。

4、设置Nginx

Nginx配置文件路径为nginx-1.18.0\conf\nginx.conf。

(1) 配置端口

Nginx启动不了时,可能就是因为端口被占用了,因此可以手动设置Nginx的端口。

端口位置为nginx.conf -> http -> server -> listen,默认为80端口,可以修改为需要设置的端口。

(2) 配置基于转发服务器

server_name localhost;

server_name指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名,多个域名之间以空格分开。

(3) 设置代理路径

location / {

#root html;

#index index.html index.htm;

proxy_pass http://webApi; #设置代理转发,转发到服务器列表

}

(4) 设置服务器列表

upstream webApi {

server localhost:3001;

server localhost:3002;

server localhost:3003;

}

5、测试Nginx服务器

假如api接口路径为http://localhost:3001/api/weatherforecast,在浏览器中输入http://localhost:80/api/ weatherforecast,则依次会调用3001、3002、3003端口所在服务器接口,对所有接口轮询调用。

Nginx默认使用轮询策略转发请求到服务器列表,也可以设置权重等策略。