当前位置: 首页>后端>正文

五台nginx搭建集群 多台nginx集群

  • 使用nginx代理功能

该功能可以通过组建后台集群提高网站性能

1,环境准备

三台主机:

proxy  2.5

web1  2.100

web2  2.200

检查ip,同网段要互通,检查yum

在web1、web2主机安装常用软件包与网站服务httpd

yum -y install vim net-tools bash-completion psmisc httpd
然后继续准备网站页面
echo "web1~~" > /var/www/html/index.html   //创建测试页面,如果是web2主机的话要写web2~~

systemctl start httpd    //然后将web1、web2的服务开启
systemctl stop firewalld   //关闭防火墙

回到proxy主机

[root@proxy nginx]# curl 192.168.2.100   //到proxy主机测试
web1~~
[root@proxy nginx]# curl 192.168.2.200
web2~~

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器,第1张

 

接下来还原proxy主机的nginx
[root@proxy nginx]# cd ~/lnmp_soft/
[root@proxy lnmp_soft]# killall nginx
[root@proxy lnmp_soft]# rm -rf /usr/local/nginx/
[root@proxy lnmp_soft]# rm -rf nginx-1.17.6
[root@proxy lnmp_soft]# tar -xf nginx-1.17.6.tar.gz
[root@proxy lnmp_soft]# cd nginx-1.17.6/
[root@proxy lnmp_soft]#yum -y install gcc make pcre-devel openssl-devel
[root@proxy nginx-1.17.6]# ./configure 
[root@proxy nginx-1.17.6]#make
[root@proxy nginx-1.17.6]#make  install
修改nginx配置文件实现集群功能
[root@proxy nginx]# vim conf/nginx.conf
upstream web {        //首先是34~37行,创建集群,集群名称叫web
server  192.168.2.100:80;   //这里是集群中的服务器ip与端口
server  192.168.2.200:80;   //第二台集群主机
}
server {
        listen       80;
        。。。。
        location / {
proxy_pass  http://web;     //在第47行,代理__调用集群 http://web
            root   html;
            index  index.html index.htm;
        }
之后开启nginx或者重加载nginx配置,用curl 192.168.2.5可以看到 web1 或web2页面轮询出现


sbin/nginx    //开启nginx服务
systemctl stop firewalld   //关闭防火墙

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_02,第2张

 关闭防火墙测试

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_html_03,第3张

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_04,第4张

 

 实现web1、web2轮询出现

 


集群优化 

1.调节权重定义集群主机任务的分配量

server 192.168.2.200:80 weight=2;   //为性能较强的集群主机配置权重,权重越大任务的分配量就越大

 

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_05,第5张

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_06,第6张

2.配置健康检查 

server 192.168.2.200:80 max_fails=2 fail_timeout=30; //检测两次如果失败
,则认为集群中的主机故障,之后等待30秒再次测试
sbin/nginx -s reload
测试时,先将web2的httpd服务关闭,回到proxy访问集群页面curl 192.168.2.5
只会显示web1的页面,此时即使将web2的httpd服务开启也无效,因为要等
待30秒

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_07,第7张

 

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_html_08,第8张

web2:
systemctl stop httpd
systemctl start httpd

回到proxy主机测试

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_09,第9张

 等待30秒后

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_10,第10张

3.相同客户机访问相同服务器

upstream web {

ip_hash;   //相同客户机访问相同服务器,让一个客户机访问集群时锁定

一个后台服务器,避免重复登陆的问题

server 192.168.2.100:80;

server 192.168.2.200:80;

}

sbin/nginx -s reload

curl 192.168.2.5    //重加载配置后访问2.5只会看到一个网站的页面

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_11,第11张

 测试:

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_12,第12张

 4.添加down标记

upstream web {
server 192.168.2.100:80;
server 192.168.2.200:80 down;  //down标记可以让集群主机暂时不参与集群活动
}
sbin/nginx -s reload
curl 192.168.2.5

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_13,第13张

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_五台nginx搭建集群_14,第14张

 


nginx功能

网站服务,网站代理(网站业务),四层代理(其他业务)

 

使用nginx创建其他业务集群(四层代理)
[root@proxy nginx]# cd ~/lnmp_soft/nginx-1.17.6/
[root@proxy nginx-1.17.6]# killall nginx
[root@proxy nginx-1.17.6]# rm -rf /usr/local/nginx/
./configure  --with-stream  --with-http_stub_status_module
//这里的--with-stream 是添加四层代理模块,可以用来创建其
他业务集群,--with-http_stub_status_module是后面实验所需模块
另外,如果更新模块,但不想删除之前nginx数据,可以将nginx源码目录下的objs目录中的nginx文件拷贝到nginx的sbin目录下替代现有主程序,然后killall  nginx 再重启即可
make    //编译
make install    //安装
cd /usr/local/nginx/
sbin/nginx -V   //查看安装模块情况

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_五台nginx搭建集群_15,第15张

 

打开nginx主配置文件,在16行左右(http上面),添加以下内容stream {         //创建新业务
upstream backend {    //创建名叫backend的集群
server 192.168.2.100:22;    //集群中的主机使用22端口对外提供服务
server 192.168.2.200:22;
}
server {
listen 12345;    //监听端口号
proxy_pass backend;    //调用集群
}
}

sbin/nginx   //配置写好之后开启服务或者重加载配置文件
ssh  192.168.2.5 -p 12345    //尝试远程登录,第一次可能会连接集群的某一台主机比如web1
exit    //退出


注意:如果配置没有错误,但无法反复登陆web1与web2,可以按下列方式解决
[root@proxy nginx]# rm -rf ~/.ssh/known_hosts   //每登录一次之后在proxy中删除记录文件
ssh  192.168.2.5 -p 12345   //再次尝试登录,会连接到另外一台集群主机

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_nginx_16,第16张

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_17,第17张

 当我们再次登录时会报错,这是Linux的报警,属于正常报错。

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_nginx_18,第18张

 解决办法:删除登录记录

rm -rf ~/.ssh/known_hosts

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_五台nginx搭建集群_19,第19张

 再次登录即可登录到web2主机。


常见nginx问题处理

1,404报错

error_page  404      /test.jpg;  //如果客户访问了不存在的页面就显示test.jpg的内容

sbin/nginx -s reload   //重加载配置
然后找一个图片扔到/usr/local/nginx/html里面,命名为404.png
使用浏览器虽随意访问不存在的页面192.168.2.5/XXXX.html   就可以看到之前那张图片的内容
如果真机是windows可以用mobaXterm传test.jpg文件到nginx的html目录
如果真机是linux可以用scp命令

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_五台nginx搭建集群_20,第20张

 这里从网上找的图片,命名为404.png 上传到虚拟机里,将图片放到

/usr/local/nginx/html   

在配置文件里修改。

然后重新加载

访问网页查看

 

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_html_21,第21张

 2.查看网站后台数据

--with-http_stub_status_module   //该功能利用的模块,之前配置nginx已经安装
打开配置文件
location /status  {   //在error_page行上面添加此内容
stub_status on;    //显示后台的数据

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_nginx_22,第22张

 

访问192.168.2.5/status

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_html_23,第23张

 修改配置文件,只允许自己查看,拒绝其他所有人。

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_服务器_24,第24张

 

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_html_25,第25张

 需要在虚拟机2.5里面访问

五台nginx搭建集群 多台nginx集群,五台nginx搭建集群 多台nginx集群_运维_26,第26张

 


Active connections:当前活动的连接数量(当前有多少用户访问该网站)。

Accepts:已经接受客户端的连接总数量。

Handled:已经处理客户端的连接总数量。

Requests:客户端发送的请求数量。

Reading:当前服务器正在读取客户端请求头的数量。

Writing:当前服务器正在写响应信息的数量。

Waiting:当前多少客户端在等待服务器的响应。

https://www.xamrdz.com/backend/3gx1924012.html

相关文章: