网址:https://blog.csdn.net/weixin_40779637/article/details/113932374?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-8.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-8.control

 

 

目录
一、下载Nginx
二、配置Nginx
1、修改配置文件:nginx-1.18.0\conf\nginx.conf
2、大概配置如下,详细配置请参考官网链接
三、启动Nginx
四、负载均衡测试
1、启动多个 .net core 项目
2、访问Nginx配置监听地址

Linux系统Nginx代理.Net Core项目
一、下载Nginx
官网下载请自行搜索
下载地址:https://download.csdn.net/download/weixin_40779637/15419408

二、配置Nginx
本站下载的配置好了

1、修改配置文件:nginx-1.18.0\conf\nginx.conf
2、大概配置如下,详细配置请参考官网链接
worker_processes 1;

events {
worker_connections 1024;
}

http {
#负载均衡方法
upstream 负载均衡名称 {
# no load balancing method is specified for round robin
# less_conn:最少连接,ip_hash:IP哈希
server URL1 weight=5;
server URL2 weight=3;
server URL3 weight=2;
# weight 权重
}

include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;

#gzip on;

server {
#监听本机8001
listen 8001;
#服务器地址,localhost代表本机
server_name localhost;

location / {
# 负载均衡名称 配置中server的URL为全地址时直接名称,否则HTTP//负载均衡名称或HTTPS://负载均衡名称
proxy_pass 负载均衡名称;
#主动健康检查 --只有plus支持,收费功能
health_check;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#可以有多个 http://nginx.org/en/docs/beginners_guide.html
server {
}
}

参考:https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/#method
参考:https://nginx.org/en/docs/http/ngx_http_upstream_module.html
参考:多个server http://nginx.org/en/docs/beginners_guide.html

三、启动Nginx
双击可执行文件:nginx.exe或命令:nginx启动
参考:http://nginx.org/en/docs/beginners_guide.html

四、负载均衡测试
1、启动多个 .net core 项目
a、新建项目并编译

/// <summary>
/// 控制器代码
/// </summary>
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
[HttpGet("[action]")]
public string GetIp()
{
return "IP:"+ Request.HttpContext.Connection.LocalIpAddress.MapToIPv4().ToString() + " 端口:" + Request.HttpContext.Connection.LocalPort;
}
}

b、编译文件夹命令启动

一定要多个命令窗口、或多个IIS站点、或多个docker容器

# 启动命令
dotnet DockerRelease.dll --urls=http://*:9002 --ip="127.0.0.1" --port=9001
dotnet DockerRelease.dll --urls=http://*:9002 --ip="127.0.0.1" --port=9003
dotnet DockerRelease.dll --urls=http://*:9002 --ip="127.0.0.1" --port=9003

2、访问Nginx配置监听地址
请求Nginx监听的9000端口,负载到9001、2、3三个系统实例。

http://localhost:9000/WeatherForecast/getip