huashan8 发表于 2017-12-23 22:48:31

linux+asp.net core+nginx四层负载均衡

  Linux Disibutaion:Ubuntu 16.04.1 LTS
  Web Server:Nginx、Kestrel
  关于如何在linux中部署asp.net core我这里不再详细介绍,可以参考ASP.Net Core 运行在Linux(Ubuntu)
  这里我需要三台VM:
  nginxvm01:做负载均衡服务器
  nginxvm02:服务节点1
  nginxvm03:服务节点2
  大致服务架构如下图:

  配置负载均衡节点(nginxvm01):
  

sudo apt-get install -y nginx  
sudo touch /etc/nginx/sites-available/nginxlb-proxy
  
sudo vi /etc/nginx/sites-available/nginxlb-proxy
  

  

  nginx网站配置文件都在/etc/nginx/sites-available目录下。
  激活的网站在/etc/nginx/sites-enabled目录下。
  nginx配置文件参考Configuration File Structure in the Nginx Guide
  将一下内容写入nginxlb-proxy文件中:
  

upstream nginxlb  
{
  
server nginxservice.cloudapp.net:8082;
  
server nginxservice.cloudapp.net:8083;
  
}
  

  
server {
  
listen 8081 default_server;
  

  
server_name nginxservice.cloudapp.net;
  

  
location /
  
{
  
proxy_pass http://nginxlb;
  
proxy_set_header X-Real-IP $remote_addr;
  
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  
}
  
}
  

  

  使用nginx做负载均衡有多种模式,参考官网Using nginx as HTTP load balancer
  nginx的几种负载方式我都测试过。
  重启加载nginx配置文件
  

sudo nginx -t
  
sudo nginx -s>  

  

  到了这一步,nginx默认启用的站点是default,我们需要改变启用的站点为nginxlb-proxy
  

sudo ln -s /etc/nginx/sites-available/nginxlb-proxy /etc/nginx/sites-enabled/  
#删除默认启用的站点default
  
sudo rm /etc/nginx/sites-enabled/default
  
#重启nginx
  
sudo service nginx restart
  

  

  服务节点asp.net core网站部署步骤,参考之前的博客。
页: [1]
查看完整版本: linux+asp.net core+nginx四层负载均衡