.net5 Nginx 反向代理部署
几个概念先了解一下
集群
多个服务器(或者软件)呢,都可以完整的完成一个业务
eg:一个业务呢有A,B,C三个流程,服务器甲可以完成A,B,C。服务器乙也可以完成A,B,C
分布式
多个服务器 完成不同的业务流程
eg:一个业务呢有A,B,C三个流程,服务器甲完成A业务,服务器乙呢完成B业务
反向代理
部署在服务器上面,转发客户机的请求,Nginx是一个反向代理
Nginx就是监听
正向代理
安装在客户机上面,直接进行转发,典型的就是fqrj
下面用案列实操一下------------
第一步通过命令行先启动.net5 项目的三个实例,分别定义不同的端口号
dotnet +api的dll --urls=“http://:5005" --port=5005
dotnet +api的dll --urls="http://:5006” --port=5006
dotnet +api的dll --urls=“http://*:5007” --port=5007
开着先放在这
同时监听这三个端口号:5005,5006,5007
配置Nginx
先去官网下载,这个自己下载 去nginx.conf做相关配置
第一步:开启Nginx start nginx
寻找nginx.conf配置文件(关于nginx都在这个里面)
把server下面的默认端口80改成90,然后以http的协议访问这个端口90
出现以下界面就说明是成功的
配置Nginx代理
关键词:proxy_pass 和upstream
在server上面定义
upstream Net5{
server localhost:5005;
server localhost:5006;
server localhost:5007;
}
在server里面定义
location / {
proxy_pass http://Net5;
}
修改配置文件之后呢 nginx -s reload 命令重新加载配置文件
接下来访问90端口(这里访问会出现404,这里把端口改成9000)
Nginx会把请求呢分发到不同的服务器,这就达到了服务器的集群效果
负载均衡
nginx 默认是轮询转发
介绍一下几种负载均衡的策略
weight(根据权重转发)
upstream Net5{
server localhost:5005 weight=80;
server localhost:5006 weight=10;
server localhost:5007 weight=10;
}
ip_hash(根据ip地址)
根据用户的访问特点,访问指定的服务器,比方说这个用户第一次访问的5005,那下次来还访问5005
upstream Net5{
ip_hash
server localhost:5005 weight=80;
server localhost:5006 weight=10;
server localhost:5007 weight=10;
}
leash_conn(根据连接数来转发)
把请求转发给之前连接数比较少的服务器,当其他服务器访问量大的时候呢,可以达到很好的效果
upstream Net5{
leash_conn
server localhost:5005 weight=80;
server localhost:5006 weight=10;
server localhost:5007 weight=10;
}
fair(根据响应时间)
响应时间短的服务器优先分配
upstream Net5{
server localhost:5005 weight=80;
server localhost:5006 weight=10;
server localhost:5007 weight=10;
fair
}
有服务器宕机怎么办?
这个不用担心,nginx很聪明,宕机了就不访问,当服务器恢复正常的时候呢,会再次访问
Nginx反向代理缓存
Nginx还可以做缓存
Nginx常见命令
start nginx(开启nginx)
nginx -s quit(优雅停止nginx)
nginx -s reload(优雅重启配置文件)
nginx -t (nginx配置是否正确)
nginx -h (帮助信息)
nginx -c filename(自定义配置文件)
nginx -s stop nginx (停止)