使用Ubuntu完成nginx的负载均衡

一,Ubuntu的安装以及调试

Ubuntu下载链接:Ubuntu 16.04.7 LTS (Xenial Xerus)

1.1Ubuntu的远程登录问题

Ubuntu初始情况下无法进行ssh登录需要下载更新ssh服务以及修改文件

1.更新源列表

复制代码
sudo apt-get update

2.安装ssh

复制代码
sudo apt-get install openssh-server

3.检测ssh服务

复制代码
sudo ps -e |grep ssh

有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动

4.使用vim修改配置文件"/etc/ssh/sshd_config"

复制代码
vim /etc/ssh/sshd_config

注释掉 PermitRootLogin without-password //如果不注释,则无法使用密码登陆

增加 PermitRootLogin yes //允许root用户登陆

5重启ssh服务

复制代码
systemctl restart ssh

二,nginx的安装

1,安装依赖

复制代码
sudo apt install libgd-dev

下载nginx

注:需要先安装wget初始的Ubuntu没有wget

复制代码
apt install wget

wget http://nginx.org/download/nginx-1.22.1.tar.gz

解压nginx

复制代码
 tar -zvxf nginx-1.22.1.tar.gz

测试

在`Windows的浏览器中,直接输入Ubuntu的地址访问`Nginx`:

三,负载均衡

1.网页搭建

在 /var/www/html下创建网页

2.设置负载均衡

编辑/etc/nginx/sites-available下的default文件

复制代码
upstream nginx_boot(这个名字可以自己更改){
   # 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2
   server 192.168.0.000:8080 weight=100 max_fails=2 fail_timeout=30s; 
   server 192.168.0.000:8090 weight=200 max_fails=2 fail_timeout=30s;
                                weight是设置权重决定命中率到达负载均衡的效果
除了权重算法以为还可以通过反向代理算法设置策略
   # 这里的IP请配置成你WEB服务所在的机器IP
}

server {
    location / {
        root   html;
        # 配置一下index的地址,最后加上index.ftl。
        index  index.html index.htm index.jsp index.ftl;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 请求交给名为nginx_boot的upstream上
        proxy_pass http://nginx_boot;
    }
}

常见的反向代理算法

1.rr轮询(默认)

2.weight(权重),在轮询算法的基础上加上权重(默认是rr+weight)

3.ip_hash

该调度算法可以解决动态网页session共享的问题

缺陷:分配不均

4.fair算法(第三方)

根据后端服务器RS的响应时间来分配请求,响应时间短的优先分配

5.url_hash(第三方)

按访问url的hash结果来分配请求,让每个url定位到同一个后端服务器,后端服务器为缓存服务器时效果明显

6.最少连接数

哪台机器连接数少就分配给哪台

访问

nginx

nginx的工作原理

Nginx采用多进程模型,主进程负责接收客户端的连接请求,然后将连接请求分发给工作进程来处理。每个工作进程可以处理多个客户端连接,采用异步非阻塞的方式来处理连接请求。

个人认为nginx本质上类似于一个反射器将用户的请求先打到nginx服务器上在由nginx服务器分发请求,可以使请求不直接接触服务器达到保护服务器的作用,同时在存在多台路由器的情况下可以检测各台服务器的工作能力选择合适的服务器发放请求。

Nginx的工作流程

客户端向Nginx发送HTTP请求。

Nginx主进程接收到请求,并将请求分发给空闲的工作进程。

工作进程接收到请求,进行请求处理,并将处理结果返回给Nginx主进程。

Nginx主进程将请求结果返回给客户端

nginx的常用功能

静态文件服务:Nginx可以作为静态文件服务器,可以快速响应客户端请求,提供高效的文件服务。

反向代理:Nginx可以作为反向代理服务器,将客户端的请求代理到后端的Web服务器上进行处理,从而提高系统的可靠性和可用性。

负载均衡:Nginx可以进行负载均衡,将客户端请求分发到多个后端服务器上进行处理,从而提高系统的性能和可扩展性。

缓存加速:Nginx可以缓存静态文件和动态内容,提高系统的响应速度和性能。

SSL/TLS加密:Nginx可以提供HTTPS服务,支持SSL/TLS加密,保证数据的安全性。

访问控制:Nginx可以对客户端的请求进行访问控制,包括IP黑白名单、HTTP Basic认证等方式。

相关推荐
街灯L3 分钟前
【Ubuntu】安装配置nginx文件版
服务器·nginx·ubuntu
The Chosen One98525 分钟前
【Linux】制作进度条小程序、git入门 (add、commit、push三板斧)以及git的其他问题
linux·运维·git
黛琳ghz27 分钟前
极速云原生:openEuler之Redis与Nginx部署性能实战
redis·nginx·云原生·操作系统·压力测试·openeuler·服务器部署
Crazy________30 分钟前
45Ansible Roles:标准化部署的终极利器
linux·运维·服务器
qq_2965446536 分钟前
驱动精灵、驱动人生、NVIDIA专业显卡驱动、360驱动大师、联想乐驱动,电脑驱动修复工具大全
网络·电脑·负载均衡
知识分享小能手38 分钟前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 磁盘存储管理 —语法详解与实战案例(7)
linux·学习·centos
wadesir39 分钟前
Linux网络优化服务配置(从零开始提升服务器网络性能)
linux·服务器·网络
tianyuanwo40 分钟前
从PAM到零信任:Linux密码认证体系的深度解析与演进
linux·运维·服务器·pam·密码认证
unclecss41 分钟前
键盘输入延迟 800 ms?!——一次终端“假死”排查笔记
linux·运维·笔记·性能优化·auditd
r i c k42 分钟前
Synergy连接win11与ubuntu22.04,共用一套鼠标键盘,win11作为Server,Ubuntu22.04为client
ubuntu·双系统共用键盘鼠标