• Nginx-反向代理与负载均衡


    准备好三台安装了nginx的虚拟机,ip分别为 135、136、137。

     

     一、反向代理

    实战演示:

    1. 1.# 分别修改三台nginx的默认站点
    2. [root@nginx01 ~]# vim /usr/local/nginx/html/index.html
    3. Hello,192.168.78.135
    4. 2.# 修改nginx01的配置文件
    5. [root@nginx01 ~]# vim /usr/local/nginx/conf/nginx.conf
    6. worker_processes 1;
    7. events {
    8. worker_connections 1024;
    9. }
    10. http {
    11. include mime.types;
    12. default_type application/octet-stream;
    13. sendfile on;
    14. keepalive_timeout 65;
    15. # 虚拟主机1
    16. server {
    17. listen 80;
    18. server_name localhost;
    19. location / {
    20. # 反向代理
    21. proxy_pass http://192.168.78.136; # 输入需要访问的目标地址或者域名
    22. # root html; # 默认访问 proxy_pass模块,下面部分不在访问
    23. # index index.html index.htm;
    24. }
    25. error_page 500 502 503 504 /50x.html;
    26. location = /50x.html {
    27. root html;
    28. }
    29. }
    30. }
    31. 3.# 重装 nginx
    32. [root@nginx01 ~]# systemctl reload nginx.service

    测试效果:

    在浏览器输入nginx01的ip地址(135),成功访问到 136 站点

     

    二、负责均衡 

    实战演示:

    1. [root@nginx01 ~]# vim /usr/local/nginx/conf/nginx.conf
    2. worker_processes 1;
    3. events {
    4. worker_connections 1024;
    5. }
    6. http {
    7. include mime.types;
    8. default_type application/octet-stream;
    9. sendfile on;
    10. keepalive_timeout 65;
    11. # 负责均衡集群
    12. upstream httpds { # httpds 可自定义名称
    13. # 80端口默认可省略
    14. server 192.168.78.136:80;
    15. server 192.168.78.137:80;
    16. }
    17. # 虚拟主机1
    18. server {
    19. listen 80;
    20. server_name localhost;
    21. location / {
    22. # 反向代理
    23. proxy_pass http://httpds; # 需与 upstream 定义的名称一致
    24. # root html;
    25. # index index.html index.htm;
    26. }
    27. error_page 500 502 503 504 /50x.html;
    28. location = /50x.html {
    29. root html;
    30. }
    31. }
    32. }
    33. [root@nginx01 ~]# systemctl reload nginx.service

     测试效果:

    在浏览器输入nginx01的ip地址(135),重复刷新,可以成功访问到 136、137 站点

     

    三、负载均衡策略

    1.轮询

    默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。如上述的负载均衡配置

    2.weight(权重)

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    1. upstream httpds {
    2. server 192.168.78.136:80 weight=8 down;
    3. server 192.168.78.137:80 weight=2;
    4. server 192.168.78.137:80 weight=2 backup;
    5. }

    weight 可选参数: 

    • down:表示当前的 server 暂时不参与负载
    • weight:默认为1,数值越大,负载的权重就越大。
    • backup: 其它所有的非 backup 机器 down 或者忙的时候,请求backup机器,相当于备用服务器。

    以下几种不常用:

    3.ip_hash

    根据客户端的ip地址转发同一台服务器,可以保持回话。

    4.least_conn

    最少连接访问

    5.url_hash

    根据用户访问的url定向转发请求

    6.fair

    根据后端服务器响应时间转发请求

     

  • 相关阅读:
    广义回归神经网络的应用,广义回归神经网络原理
    Vim实用技巧
    如果你用Markdown写公众号文章,试试我做的在线转换神器
    [附源码]java毕业设计文具销售系统
    DataGrip 无法连接mysql 错误[08001]
    力扣 -- 97. 交错字符串
    JavaScript学习总结
    CS217 1_Intro Hardware Accelerators for Machine Learning
    如何在idea中创建一个SpringBoot项目(超详细教学)
    如何在Web前端实现CAD图文字全文搜索功能之技术分享
  • 原文地址:https://blog.csdn.net/weixin_46560589/article/details/126387760