天天看點

keepalived+nginx

高內建:keepalived

負載均衡:nginx

1、伺服器IP

Client: 172.25.254.25

Keepalived+Nginx1: 172.25.254.115 Vip: 172.25.254.100

Keepalived+Nginx2: 172.25.254.215 Vip: 172.25.254.100

二、安裝

1、安裝keepalived

     yum install keepalived

2、編譯安裝Nginx

<code>[root@node1 ~]</code><code>#useradd -r nginx</code>

<code>[root@node1 ~]</code><code>#yum -y groupinstall "Development tools" "Server  Platform Development"</code>

<code>[root@node1 ~]</code><code>#yum -y install pcre-devel</code>

<code>[root@node1 ~]</code><code>#tar xf nginx-1.4.2.tar.gz</code>

<code>[root@node1 ~]</code><code>#cd nginx-1.4.2</code>

<code>[root@node1 nginx-1.4.2]</code><code># ./configure \</code>

<code>--prefix=</code><code>/usr</code><code>\</code>

<code>--sbin-path=</code><code>/usr/sbin/nginx</code><code>\</code>

<code>--conf-path=</code><code>/etc/nginx/nginx</code><code>.conf \</code>

<code>--error-log-path=</code><code>/var/log/nginx/error</code><code>.log \</code>

<code>--http-log-path=</code><code>/var/log/nginx/access</code><code>.log \</code>

<code>--pid-path=</code><code>/var/run/nginx/nginx</code><code>.pid  \</code>

<code>--lock-path=</code><code>/var/lock/nginx</code><code>.lock \</code>

<code>--user=nginx \</code>

<code>--group=nginx \</code>

<code>--with-http_ssl_module \</code>

<code>--with-http_flv_module \</code>

<code>--with-http_stub_status_module \</code>

<code>--with-http_gzip_static_module \</code>

<code>--http-client-body-temp-path=</code><code>/var/tmp/nginx/client/</code><code>\</code>

<code>--http-proxy-temp-path=</code><code>/var/tmp/nginx/proxy/</code><code>\</code>

<code>--http-fastcgi-temp-path=</code><code>/var/tmp/nginx/fcgi/</code><code>\</code>

<code>--http-uwsgi-temp-path=</code><code>/var/tmp/nginx/uwsgi</code><code>\</code>

<code>--http-scgi-temp-path=</code><code>/var/tmp/nginx/scgi</code><code>\</code>

<code>--with-pcre</code>

提示:在兩台伺服器上都要安裝Nginx

   <code>[root@node1 nginx-1.4.2]</code><code># service nginx start</code>

<code>Starting nginx:                                            [  OK  ]</code>

三、實作高可用

1、修改配置keepalived

<code>[root@node1 ~]</code><code># cd /etc/keepalived</code>

<code>[root@node1 keepalived]</code><code># mv keepalived.conf keepalived.conf.bak    </code>

<code>[root@node1 keepalived]</code><code>#vim keepalived.conf                    </code>

<code>! Configuration File </code><code>for</code><code>keepalived</code>

<code>global_defs {</code>

<code></code><code>notification_email {</code>

<code></code><code>root@localhost</code>

<code></code><code>}</code>

<code></code><code>notification_email_from kaadmin@localhost</code>

<code></code><code>smtp_server 127.0.0.1</code>

<code></code><code>smtp_connect_timeout 30</code>

<code></code><code>router_id LVS_DEVEL</code>

<code>}</code>

<code>vrrp_script chk_nginx {</code>

<code></code><code>script </code><code>"killall -0 nginx"</code>

<code></code><code>interval 1</code>

<code></code><code>weight 2</code>

<code>vrrp_instance VI_10 {</code>

<code></code><code>state MASTER</code>

<code></code><code>interface eth0</code>

<code></code><code>virtual_router_id 131</code>

<code></code><code>priority 100</code>

<code></code><code>advert_int 1</code>

<code></code><code>authentication {</code>

<code></code><code>auth_type PASS</code>

<code></code><code>auth_pass 123456</code>

<code></code><code>virtual_ipaddress {</code>

<code></code><code>172.16.3.100</code>

<code></code><code>track_script {</code>

<code></code><code>chk_nginx</code>

3、驗證

<code>[root@node1 ~]</code><code># ip addr</code>

<code>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 16436 qdisc noqueue state UNKNOWN</code>

<code></code><code>link</code><code>/loopback</code><code>00:00:00:00:00:00 brd 00:00:00:00:00:00</code>

<code></code><code>inet 127.0.0.1</code><code>/8</code><code>scope host lo</code>

<code></code><code>inet6 ::1</code><code>/128</code><code>scope host</code>

<code></code><code>valid_lft forever preferred_lft forever</code>

<code>2:  eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000</code>

<code></code><code>link</code><code>/ether</code><code>00:0c:29:65:a0:2f brd ff:ff:ff:ff:ff:ff</code>

<code></code><code>inet 172.16.3.3</code><code>/16</code><code>brd 172.16.255.255 scope global eth0</code>

<code></code><code>inet 172.16.3.100</code><code>/32</code><code>scope global eth0          </code><code># Vip此時在Keepalived+Nginx1上</code>

<code></code><code>inet6 fe80::20c:29ff:fe65:a02f</code><code>/64</code><code>scope link</code>

然後關閉Keepalived+Nginx1上的keepalived服務Vip會跳轉到Keepalived上

四、實作負載均衡

1、修改Keepalived配置檔案

Keepalived+Nginx1:

<code>[root@node1 keepalived]</code><code># mv keepalived.conf keepalived.conf.bak     # 備份keepalived配置檔案</code>

<code>[root@node1 keepalived]</code><code>#vim keepalived.conf                         # 建立配置檔案,如下</code>

<code>vrrp_instance VI_20 {</code>

<code></code><code>state BACKUP</code>

<code></code><code>virtual_router_id 132</code>

<code></code><code>priority 99</code>

<code></code><code>172.16.3.200</code>

<code>   }</code>

Keepalived+Nginx2  同理

<code>[root@node2 ~]</code><code># cd /etc/keeplived</code>

<code>[root@node2 keepalived]</code><code># mv keepalived.conf keepalived.conf.bak</code>

<code>[root@node2 keepalived]</code><code># vim keepalived.conf</code>

2、重新開機Keepalived服務

<code>[root@node1 ~]</code><code># service keepalived restart</code>

<code>[root@node2 ~]</code><code># service keepalived restart</code>

<code>[root@node2 ~]</code><code># ip addr show</code>

<code>2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000</code>

<code></code><code>link</code><code>/ether</code><code>00:0c:29:52:ee:44 brd ff:ff:ff:ff:ff:ff</code>

<code></code><code>inet 172.16.3.4</code><code>/16</code><code>brd 172.16.255.255 scope global eth0</code>

<code></code><code>inet 172.16.3.200</code><code>/32</code><code>scope global eth0    </code><code>#此時vip2在Keepalived+Nginx2上</code>

<code></code><code>inet6 fe80::20c:29ff:fe52:ee44</code><code>/64</code><code>scope link</code>

4、關閉Keepalived+Nginx2上的Keepalived服務模拟故障,vip2會轉移到Keepalived+Nginx1上,反之依然

<code>[root@node1 ~]</code><code># ip addr show</code>

<code></code><code>inet 172.16.3.100</code><code>/32</code><code>scope global eth0</code>

<code></code><code>inet 172.16.3.200</code><code>/32</code><code>scope global eth0</code>

<code></code>

<code>本文轉自鐵騎傳說51CTO部落格,原文連結: </code>http://blog.51cto.com/ybzbfs/1952129,如需轉載請自行聯系原作者

上一篇: python練習題
下一篇: python未完結

繼續閱讀