基于nginx+keepalived架构实现的完整过程

简介:

Nginx 安装


1.安装PCRE软件包

tar zxvf pcre-8.10.tar.gz

cd pcre-8.10

./configure

make && make install


2.安装Nginx软件包

tar zxvf nginx-1.2.6.tar.gz

cd nginx-1.2.6

useradd -s /sbin/nologin -M www

./configure --prefix=/usr/local/nginx \

--user=www --group=www \

--with-http_stub_status_module \

--with-file-aio \

--with-http_ssl_module

make && make install


3.Nginx 配置文件和启动

/usr/local/nginx/sbin/nginx -t #(加载配置文件)

/usr/local/nginx/sbin/nginx #(启动)

/usr/local/nginx/sbin/nginx -s reload#(重新加载)



Nginx 负载均衡器(1+2)


0.准备过程

useradd www

mkdir -p /data/logs/

chown -R www:www /data/logs/

ulimit -SHn 102400


1.安装 pcre 

tar zxvf pcre-8.20.tar.gz

cd pcre-8.20

./configure

make && make install


2.安装nginx

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module


3.修改nginx配置文件

user    www     www;

worker_processes 2;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

        use epoll;

        worker_connections      51200;

}

http

{

        include           mime.types;

        default_type application/octet-stream;

        charset utf-8;

        server_names_hash_bucket_size 128;

        client_header_buffer_size 32k;

        large_client_header_buffers 4 32k;

        sendfile on;

        tcp_nopush         on;

        keepalive_timeout 60;

        tcp_nodelay on;

        gzip on;

        gzip_min_length 1k;

        gzip_buffers         4 16k;

        gzip_http_version 1.0;

        gzip_comp_level 2;

        gzip_types           text/plain application/x-javascript text/css application/xml;

        gzip_vary on;

        upstream www.free.com {

                ip_hash;

                server 192.168.18.213:80;

                server 192.168.18.214:80;

        }

     #access log

       log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '

                            '$status $body_bytes_sent "$http_referer" '

                            '"$http_user_agent" "$http_x_forwarded_for"';

        access_log /data/logs/access.log  access;

        server {

                listen 80;

                server_name www.free.com;

                location /{

                        proxy_pass      http://www.free.com;

                        proxy_set_header Host   $host;

                        proxy_set_header X-Real-IP      $remote_addr;

                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                }

                #开启监控功能

                location /nginx{   

                        access_log off;

                        stub_status on;

                }

        }

}


4.检查配置文件

/usr/local/nginx/sbin/nginx -t


5.启动nginx 

/usr/local/nginx/sbin/nginx


6.重启加载配置文件

/usr/local/nginx/sbin/nginx -s reload





Nginx+Keepalived 做负载均衡器


1.安装 keepalived

tar zxvf keepalived-XXXX.tar.gz

./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.XXXXXXXX/

make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

service keepalived start


2.Master与Backup 的配置文件

Master:

! Configuration File for keepalived

global_defs {

   notification_email {

      15251076067@163.com

   }

   notification_email_from king_819@163.com

   smtp_server smtp.163.com

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

# VIP1

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    mcast_src_ip 192.168.18.211

    priority 100

    advert_int 5

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.18.200

    }

}


BackUP:

! Configuration File for keepalived

global_defs {

   notification_email {

      15251076067@163.com

   }

   notification_email_from king_819@163.com

   smtp_server smtp.163.com

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

# VIP1

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    mcast_src_ip 192.168.18.212

    priority 90

    advert_int 5

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.18.200

    }

}





监控Nginx负载均衡器脚本


1.编写脚本

vim nginx_pid.sh

#!/bin/bash

while  :

do

nginxpid=`ps -C nginx --no-header | wc -l`

if [ $nginxpid -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 5

  if [ $nginxpid -eq 0 ];then

  /etc/init.d/keepalived stop

  fi

fi

sleep 5

done


2.执行脚本

sh /root/nginx_pid.sh &

nohup /bin/bash /root/nginx_pid.sh &



本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/1957263,如需转载请自行联系原作者

相关文章
|
2月前
|
供应链 Java
云HIS技术架构:Angular+Nginx+Java+Spring,SpringBoot
标准数据维护 用户信息:维护用户的基本信息,所在科室以及各个系统所具体的权限。 科室信息:维护医院的科室信息。 数据字典:标准字典信息的维护。 药品/诊疗目录维护:维护药品和诊疗目录的基本信息。
42 2
|
9月前
|
网络协议 算法 Java
nginx与keepalived的那些事
nginx与keepalived的那些事
117 0
|
9月前
|
应用服务中间件 nginx
服务搭建篇(四) 搭建基于Nginx + keepalived的高可用服务
比如我这里虚拟IP+nginx端口是 : 192.168.154.10:80 , 我直接访问 , 出来的是192.168.154.134服务器上的nginx , 因为我刚刚做了区分 , 所以这个时候就可以知道访问的是哪个机器的Nginx , 然后我们把134的Nginx停掉 , 然后再次访问 , 仍然可以使用 , 此时 ,出现的135的页面 , 也就是访问的是192.168.154.135的Nginx
116 0
|
2月前
|
运维 应用服务中间件 Linux
keepalived详解(三)——keepalived与Nginx配合实战
keepalived详解(三)——keepalived与Nginx配合实战
92 1
|
8月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
445 0
|
9月前
|
负载均衡 算法 应用服务中间件
百度搜索:蓝易云【Linux系统如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?】
通过上述步骤,你可以在Linux系统中使用HAProxy、Nginx和Keepalived来实现负载均衡。这些工具可以帮助你将流量分配到多个后端服务器上,提高系统的性能、可靠性和可扩展性。
102 0
|
2月前
|
Kubernetes 搜索推荐 应用服务中间件
通过keepalived+nginx实现 k8s apiserver节点高可用
通过keepalived+nginx实现 k8s apiserver节点高可用
125 17
|
2月前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
2月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
286 1
|
2月前
|
Java 应用服务中间件 nginx
阿里巴巴架构实战:SpringBoot+SpringCloud+Docker+Nginx+分布式
在过去的几年时间里,最让人兴奋、回头率最高、最能改变游戏规则的东西,大概就是Spring Boot了。Spring Boot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序。有了它, 你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功 夫,甚至完全不用配置。