在三台虚拟机上搭建nginx集群
·
我们要在三台虚拟机上搭建Nginx集群,这里使用centos7为例。
准备:1.每台虚拟机的网络适配器选择「NAT 模式」2.给三台虚拟机分配静态IP和角色,并且能相互ping通
虚拟机角色 固定 IP(示例) 核心作用
负载均衡器(LB) 192.168.184.100 接收用户请求,分发到后端服务器
应用服务器 1(Web1) 192.168.184.101 实际提供网页服务
应用服务器 2(Web2) 192.168.184.102 实际提供网页服务
请根据自己的网段修改静态IP。(我这里是192.168.184)
我用network修改配置文件来弄静态IP失败了,建议使用nmcli。
network和nmcli:管网络的工具,前者修改配置文件,后者直接在命令行修改静态IP,不用改配置文件。
配置静态IP后验证三台是否能ping通,在负载均衡器上输入以下命令:
ping 192.168.100.101 -c 3
ping 192.168.100.102 -c 3
接下来搭建Nginx集群:、
1-- 三台虚拟机全部安装Nginx
(1)安装依赖
yum install -y wget
(2)添加Nginx官方源
vi /etc/yum.repos.d/nginx.repo
# Nginx 稳定版软件源(官方仓库,最安全稳定)
[nginx-stable]
# 仓库名称(随便写,方便识别)
name=nginx stable repo
# 软件下载地址(自动适配CentOS 7系统)
baseurl=http://nginx.org/packages/centos/7/$basearch/
# 开启GPG校验,保证软件包没被篡改(安全选项)
gpgcheck=1
# 启用这个仓库(1=启用,0=禁用)
enabled=1
# GPG密钥地址,用于校验软件包完整性
gpgkey=https://nginx.org/keys/nginx_signing.key
(3)安装Nginx
yum install -y nginx
(4)启动并设置开机自启
systemctl start nginx
systemctl enable nginx
(5)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
若不关防火墙:
你本机电脑访问虚拟机 ❌
负载均衡访问后端 Web 服务器 ❌
其他机器访问你的 80 端口 ❌
2--配置两台web应用服务器
给两台应用服务器设置不同的页面,方便看负载效果。
====第一台web机器,将IP替换成自己的IP====
echo "<h1>Web Server 1 —— 192.168.184.101</h1>" > /usr/share/nginx/html/index.html
systemctl restart nginx
====第二台web机器,将IP替换成自己的IP====
echo "<h1>Web Server 2 —— 192.168.184.102</h1>" > /usr/share/nginx/html/index.html
systemctl restart nginx
3--配置负载均衡器(分发)
打开Nginx配置
vi /etc/nginx/nginx.conf
将里面内容全部替换成下面内容
# 全局配置:Nginx 工作进程数(1个足够测试环境)
worker_processes 1;
# 事件模块:配置网络连接
events {
# 每个进程最大支持 1024 个并发连接
worker_connections 1024;
}
# HTTP 服务核心配置
http {
# 引入文件类型支持配置(让Nginx认识各种文件格式)
include mime.types;
# 默认文件类型(二进制流)
default_type application/octet-stream;
charset utf-8;
# 开启高效文件传输模式(必开)
sendfile on;
# 长连接超时时间 65秒(提升访问速度)
keepalive_timeout 65;
# ==================== 负载均衡配置 ====================
# 定义后端服务器集群,名字叫 web_cluster
upstream web_cluster {
# 后端Web服务器1
server 192.168.184.101:80;
# 后端Web服务器2
server 192.168.184.102:80;
}
# 虚拟主机:对外提供服务
server {
# 监听 80 端口(HTTP默认端口)
listen 80;
# 域名(本地测试用localhost即可)
server_name localhost;
# 匹配所有请求
location / {
# 核心:把请求转发给上面定义的集群 web_cluster
proxy_pass http://web_cluster;
# 把真实的域名传递给后端服务器
proxy_set_header Host $host;
# 把用户真实IP传递给后端(日志会显示真实访客IP)
proxy_set_header X-Real-IP $remote_addr;
}
}
}
4--检查配置,重启Nginx
nginx -t
##成功时出现sucessful
systemctl restart nginx
5--测试是否成功
打开windows本机浏览器,输入http://192.168.184.100,不断刷新:


更多推荐




所有评论(0)