nginx 负载均衡

一, 准备三台服务器分别叫node1、node2、node3

二,分别在三台服务器上安装nginx

  1.   配置和安装相关软件  :

     1.1 执行命令 yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree

     1.2 vim /etc/yum.repos.d/nginx.repo 编辑并加入以下代码

      

[nginx]
name=nginx repo
#baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 

      1.3 安装NGINX命令:  yum install nginx  

      查看nginx版本:rpm -q nginx

                查看配置是否成功:nginx -t -c /etc/nginx/nginx.conf

                                              nginx -s reload

             

三,连接到node1服务器

     1.1 ,配置nginx.conf ,首先进去 vim /etc/nginx/nginx.conf  并加入以下代码:

          

    upstream allserver{
            server 192.168.80.130:80 weight=3;# node2
server
192.168.80.132:80 weight=1;# node3
server
192.168.80.80; #node1
} server{ listen
80;   # 监听的端口
server_name www.changjunyong.com;   # 监听的地址,多个域名用空格隔开 location
/ { proxy_pass http://allserver;   # 代理转发
   } }

    1.2,把server_name 域名发布出去  ,vim /etc/hosts 编辑

    nginx 负载均衡_第1张图片

三,新建文件目录:mkdir /soft/{app,logs,package/src} -p 分别在node2和node3服务器上

      并编辑文件: vim /soft/app/www/index.html    #node2服务器

       nginx 负载均衡_第2张图片

    #node3服务器

  nginx 负载均衡_第3张图片

  四:在node2上编辑nginx.conf 文件  : vim /etc/nginx/nginx.conf   加入以下代码保存退出

  

        server{
                listen 80;
                server_name www.changjunyong.com;
                location / {
                        root /soft/app/www;
                        index index.html;
                }
        }

 

      nginx 负载均衡_第4张图片

五:在node3上编辑nginx.conf 文件  : vim /etc/nginx/nginx.conf   加入以下代码保存退出

  

        server{
                listen 80;
                server_name blog.changjunyong.com;
                root /soft/app/blog/;
                index index.html;
        }

 

  nginx 负载均衡_第5张图片

六:在node1服务器上测试:

nginx 负载均衡_第6张图片

 

七,总结以及一些注意事项:

  1.1  如果出现nginx: [error] invalid PID number "" in "/var/run/nginx.pid" 错误

    则用命令:sudo nginx -c /etc/nginx/nginx.conf

         sudo nginx -s reload

      1.2 node1,node2,node3 服务器之间通讯

   //允许某端口放行  

  # firewall-cmd --permanent --add-port=80/tcp

  需要留意的是在编写完规则之后,要运行--reload参数
  # firewall-cmd --reload

     1.3  常见命令:

  查看防火墙状态 firewall-cmd --state
  停止firewall systemctl stop firewalld.service

  ps aux|grep nginx 查看进程
  nginx -s stop 停止

  ab -n 50 -c 20 http://192.168.80.80/index.html  压力测试

 

反向代理流程
浏览器访问www.changjunyong.com ,通过本地host文件域名解析,找到192.168.80.80 Nginx虚拟主机,Nginx接收客户机请求,找到server_name为www.changjunyong.com的节点,再根据proxy_pass对应的http路径,将请求转发到upstream allserver上,即端口号为8081的tomcat服务器。
客户机访问 --->www.changjunyong.com ---> host ---> Nginx ---> server_name ---> proxy_pass ---> upstream---> tomcat

 

你可能感兴趣的:(nginx 负载均衡)