Chinaunix首页 | 论坛 | 博客
  • 博客访问: 155818
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2020-07-22 17:26
个人简介

blender https://www.blender-3d.cn/ blender3D模型库

文章分类

全部博文(11)

文章存档

2020年(11)

我的朋友

分类: PHP

2020-07-23 16:40:38

因专案需要一个负载均衡的机制,看似用Nginx最轻松方便,虽然Nginx在windows下的效能比不上在Linux下,不过先完好Nginx的设定,日后要搬上Linux也方便

环境
.NetCore 应用程式
IIS
Windows
下载
从Nginx的下载页面就有了windows的版本,下载后找个位置放就可以直接启动执行

设定
Nginx的设定在conf/nginx.conf,直接加上负载均衡需要的设定

nginx.conf:

点击(此处)折叠或打开

  1. #user nobody;

  2. #工作進程數量,預設值為1
  3. #可以依照CPU的核心數量調整
  4. #或是給定 auto 自動判斷
  5. worker_processes 4;

  6. error_log logs/error.log;
  7. error_log logs/error.log notice;
  8. error_log logs/error.log info;

  9. events {
  10.     #每個工作進程的最大同時連接數量
  11.     worker_connections 1024;
  12. }

  13. http {
  14.     include mime.types;
  15.     default_type application/json;

  16.     sendfile on;
  17.     keepalive_timeout 65;
  18.     gzip on;

  19.     #載入其他設定檔,這邊是把server相關的設定拆開處理
  20.     include default.conf;
  21. }
default.conf:

点击(此处)折叠或打开

  1. server {
  2.     #監聽80port
  3.     listen 80;
  4.     server_name 127.0.0.1;

  5.     charset utf-8;

  6.     location / {
  7.         proxy_set_header Host $host;
  8.         #load balance會改變clientIP,這邊讓他把IP繼續往下傳
  9.         proxy_set_header X-Real-IP $remote_addr;
  10.      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  11.      proxy_set_header X-Forwarded-Proto $scheme;
  12.         #指定 load balance的目標
  13.         proxy_pass http://apps;
  14.     }
  15. }

  16. #定義server
  17. upstream apps {
  18.     server 127.0.0.1:81 weight=1 max_fails=3 fail_timeout=60s;
  19.     server 127.0.0.1:82 weight=2 max_fails=3 fail_timeout=60s;
  20. }
weight
指定权重,依照上面的设定,相当于三个request,两个请求进:82,一个请求进:81

max_fails & fail_timeout
nginx的健康检查机制,若检测该serve 无法正常回应指定的max_fails 次数,则会暂时移除这个server,等fail_timeout 指定的时间后再做一次确认

max_fails预设值为1
fail_timeout预设值为10s

LoadBalance 模式
nginx提供三种Load Balance的模式,方别为

循环,轮流发送请求给各个server
最少连接,把请求送个连接数量最少的server
用户IP,相同的IP请求送给同一个server
循环
若不指定,预设会采用这个模式

点击(此处)折叠或打开

  1. upstream apps {
  2.     server 127.0.0.1:81
  3.     server 127.0.0.1:82
  4. }
最少连接
在开头加上least_conn

点击(此处)折叠或打开

  1. upstream apps {
  2.     least_conn;
  3.     server 127.0.0.1:81
  4.     server 127.0.0.1:82
  5. }
用户IP
在开头加上ip_hash

点击(此处)折叠或打开

  1. upstream apps {
  2.     ip_hash;
  3.     server 127.0.0.1:81
  4.     server 127.0.0.1:82
  5. }
Relaod
若nginx已经执行,需要执行command重新载入设定档,需要使用-s 跟nginx沟通

stop: fast shutdown
quit: graceful shutdown
reload:reloading the configuration file
reopen:reopening the log files

点击(此处)折叠或打开

  1. $ nginx -s reload


阅读(1789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~