nginx迁移

  1. 现在环境目前只有一台服务器

2.现在迁移如下(lvs 采用的是NAT的方式)

3.IP说明:

Nginx:192.168.0.106
      192.168.0.108
Lvs:  192.168.0.109 公网Ip:124.205.3.181
      192.168.0.110  公网Ip:124.205.3.179
Keepalived:
VIP:124.205.3.180  #解析地址
    192.168.0.21   #内网上网

4. LVS NAT 的原理

1)客户端请求数据,目标IP为VIP

2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。

3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。

4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。

5)客户端收到的就只能看到VIP\DIP信息。

5.keepalived 主配置文件 192.168.0.109

192.168.0.109  master
!Configuration File for keepalived
 
global_defs{
    notification_email{
      [email protected]
  }
   [email protected]
   smtp_server 192.168.0.109
   smtp_connect_timeout 30
   router_id LVS_01
}
 
vrrp_instanceVI_1 {
    state MASTER
    interface eth1
    virtual_router_id 199
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1098
    }
    virtual_ipaddress {
        124.205.3.180/29  dev eth1 label eth1:2
    }
}
 
vrrp_instanceVI_2 {
    state MASTER
    interface eth0
    virtual_router_id 198
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1098
    }
    virtual_ipaddress {
       192.168.0.21/22 dev eth0 label eth0:1
    }
}
 
virtual_server124.205.3.180  80 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.248
    persistence_timeout 0
    protocol TCP
              
    real_server 192.168.0.106 80 {
        weight 1
        TCP_CHECK {
              connect_timeout 8
              nb_get_retry 3
              delay_before_retry 3
              connect_port 80
              }
       }
 
    real_server 192.168.0.108 80 {
        weight 1
        TCP_CHECK {
              connect_timeout 8
              nb_get_retry 3
              delay_before_retry 3
              connect_port 80
               }
           }
}
 
virtual_server124.205.3.180  443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.248
    persistence_timeout 0
    protocol TCP
              
    real_server 192.168.0.106 443 {
        weight 1
        TCP_CHECK {
              connect_timeout 8
              nb_get_retry 3
              delay_before_retry 3
              connect_port 443
              }
       }
 
    real_server 192.168.0.108 443 {
        weight 1
        TCP_CHECK {
              connect_timeout 8
              nb_get_retry 3
              delay_before_retry 3
              connect_port 443
               }
           }
}

6.keepalived 备用 192.168.0.110 配置文件

!Configuration File for keepalived
 
global_defs{
    notification_email{
      [email protected]
  }
   [email protected]
   smtp_server 192.168.0.109
   smtp_connect_timeout 30
   router_id LVS_02
}
 
vrrp_instanceVI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 199
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1098
    }
    virtual_ipaddress {
        124.205.3.180/29  dev eth1 label eth1:2
    }
}
 
vrrp_instanceVI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 198
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1098
    }
    virtual_ipaddress {
       192.168.0.21/22 dev eth0 label eth0:1
    }
}
 
#ipvsadm-A -t 10.0.1.31:80 -s rr -p 300
virtual_server124.205.3.180  80 {
    delay_loop 6               
    lb_algo rr               
    lb_kind NAT               
    nat_mask 255.255.255.248
    persistence_timeout 50    
    protocol TCP
              
#ipvsadm-a -t 10.0.1.31:80 -r 10.0.1.6:80 -g
    real_server 192.168.0.106 80 {
        weight 1             
        TCP_CHECK {
        connect_timeout 8      
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
 
    real_server 192.168.0.108 80 {
        weight 1             
        TCP_CHECK {
        connect_timeout 8      
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}
 
 
virtual_server124.205.3.180  443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.248
    persistence_timeout 0
    protocol TCP
 
    real_server 192.168.0.106 443 {
        weight 1
        TCP_CHECK {
                connect_timeout 8
                nb_get_retry 3
                delay_before_retry 3
                connect_port 443
                }
        }
 
    real_server 192.168.0.108 443 {
        weight 1
        TCP_CHECK {
                connect_timeout 8
                nb_get_retry 3
                delay_before_retry 3
                connect_port 443
                }
        }
}

7.网卡地址信息

[[email protected]~]# ifconfig
eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.109  netmask 255.255.252.0  broadcast 192.168.3.255
        inet6 fe80::20c:29ff:fe0e:71a1  prefixlen 64 scopeid 0x20<link>
        ether 00:0c:29:0e:71:a1  txqueuelen 1000  (Ethernet)
        RX packets 10285665  bytes 6037023442 (5.6 GiB)
        RX errors 0  dropped 12270 overruns 0  frame 0
        TX packets 6762099  bytes 2555517373 (2.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0
 
eth0:1:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.21  netmask 255.255.252.0  broadcast 0.0.0.0
        ether 00:0c:29:0e:71:a1  txqueuelen 1000  (Ethernet)
 
eth1:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 124.205.3.181  netmask 255.255.255.248  broadcast 124.205.3.183
        inet6 fe80::20c:29ff:fe0e:71ab  prefixlen 64 scopeid 0x20<link>
        ether 00:0c:29:0e:71:ab  txqueuelen 1000  (Ethernet)
        RX packets 5132918  bytes 2202414181 (2.0 GiB)
        RX errors 0  dropped 2 overruns 0  frame 0
        TX packets 5378351  bytes 5416028620 (5.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0
 
eth1:2:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 124.205.3.180  netmask 255.255.255.248  broadcast 0.0.0.0
        ether 00:0c:29:0e:71:ab  txqueuelen 1000  (Ethernet)
 
lo:flags=73<UP,LOOPBACK,RUNNING>  mtu65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128 scopeid 0x10<host>
        loop txqueuelen 0  (Local Loopback)
        RX packets 98  bytes 8360 (8.1 KiB)
        RX errors 0  dropped 0 overruns 0  frame 0
        TX packets 98  bytes 8360 (8.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0
 
[[email protected]~]#

8.说明:

NAT上面可以看出 网关nginx得指向lvs服务器,lvs得开启转发的功能

keepalivedVRRP协议允许网段(两台lvs都得做)

iptables -A INPUT -p 112 -d 224.0.0.0/32 -j ACCEPT

lvs开启内核转发:(两台lvs都得做)

echo 1 /proc/sys/net/ipv4/ip_forward

备注:LVS  443   80 都得开启,因为是https

防火墙允许

网关得指向lvs

lvs开启内核转发

时间: 2024-08-10 15:00:12

nginx迁移的相关文章

如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)

因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录. 以前硬编码的URL可惨了. 还涉及到upload目录,静态目录,websocket目录. 全用{% url %}问题不太大. nginx分前后两级,uwsgi配置要作相应更改,django的setting需要变量登陆网址. 这样,在正式网站访问二级目录,测试环境仍然可以根目录访问. nginx_front: server { listen 80; server_name localhost; location /

服务器环境迁移,Linux centos7 64位 基础环境部署 jdk+tomcat+mysql+nginx

最近阿里云服务器到期,这个周末连夜将服务器迁移到美国去了,为什么迁移到美国去呢?主要是因为阿里云服务器费用高,另外网站的访问量不大,对网速要求也不高,主要是宣传和信息传递的作用,加上本人之前在搬瓦工上租了vps,安装shadowsocks 跳墙用,所以想索性将服务器暂时放到国外算了,一举两用,也不用买别人的vpn代理用来跳墙了. 整个迁移过程和软件安装步骤如下: 首先在vps上安装了nginx,保证国内能访问,并且网速能接受nginx安装,之前在博客上写过部署,不过这个刚好借此机会汇总下: 1.

相信很多朋友遇到过网站换服务器的问题,或成功或失败!今天3A网络小钱给大家讲的是自己的一个亲身经历,原先小钱有一个网站是在linux服务器上运行,所用的web服务为nginx+mysql+php,但由于服务器到期,新服务器用的是win2008系统,那就需要只能做好迁移! 前期做的准备 1、必须了解自己网站所用的PHP和MySQL的版本 2、网站大小

相信很多朋友遇到过网站换服务器的问题,或成功或失败!今天3A网络小钱给大家讲的是自己的一个亲身经历,原先小钱有一个网站是在linux服务器上运行,所用的web服务为nginx+mysql+php,但由于服务器到期,新服务器用的是win2008系统,那就需要只能做好迁移! 前期做的准备 1.必须了解自己网站所用的PHP和MySQL的版本 2.网站大小 3.数据库大小 由于网站过于巨大90G,而linux服务器上磁盘空间不够无法压缩,最后我选择的办法是使用FTP传,没想到什么好办法. 网站的数据库大

【Linux】宝塔上 GitLab数据迁移修改配置后nginx无法启动

背景: 服务器A 向 服务器B 迁移数据,修改配置重启.发现gitlab的 nginx 无法启动. 查找原因 gitlab-ctl tail 错误信息: 网上查了查,似乎是宝塔的问题, 原因应该是为了防止nginx冲突, 把gitlab的nginx启动文件名改成了gitlab-web, 但有个配置文件没改造成的 解决办法: 修改nginx启动文件 vi /opt/gitlab/sv/nginx/run 把 exec chpst -P /opt/gitlab/embedded/sbin/nginx

nagios平台从apache迁移到nginx

nginx的性能远远优于apache,但由于nagios的web界面中包含php和c-cgi程序,因此需要两套fcgi管理工具(并非必须)和两套解释器(必须).php用php-cgi跑就可以,c-cgi我选用fcgiwrap.下面介绍安装/配置步骤. php-fpm:是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgiSpawn-fcgi:是lighttpd的一个分支项目,是一个cgi进程的管理器 ● php 打php-fpm补丁,编译时启用--ena

wordpress博客站点配置及数据库迁移

1.wordpress博客站点部署配置 1.1 检查环境 1.1.1 nginx.conf配置文件 ###检查nginx配置文件 [[email protected] conf]# cat nginx.conf worker_processes 1; events { worker_connections  1024; } http { log_format  main  '$remote_addr - $remote_user [$time_local]"$request" ' '$

阿里云迁移之二

从双11截止到今天时间仿佛如白驹过隙般的溜走,除了周末除了日常的一些基本工作和处理基本故障外,一个人搭建阿里云环境真的心累. 上一篇博文大概讲解了一下迁移前的一些准备工作,此篇博文总结一下这半个月遇到的一些问题和踩过的一些坑,希望以后有人用的到. 这里再次说明一下目前阿里云使用的架构,SLB+nginx+tomcat+mysql+redis. 选择ECS服务器的时候注意网络类型,经典网络阿里帮你搞定一些.有一点需要注意如果是经典网络阿里ECS无法搭建openvpn.如果有想着用vpn的小伙伴请选

nginx服务器的网站权限问题

有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常,这在框架中最为常见,本地运行好好的网站,上传到服务器之后突然就不能访问了,出现很多错误,这就是在Linux下存在的权限问题,网上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件权限全部打开,其实这样能解决问题,但是不是最好的解决方案,我们如果理解

nginx 504 Gateway Time-out错误排查

一次nginx 504 Gateway Time-out错误排查.解决记录,经过反复检查,发现造成这个问题的原因就是PHP的CURL没有设置超时时间,解决办法只要设置超时时间或者修改一下nginx的配置即可解决. 记一次莫名其妙的网站失去响应排查.之前网站一直是使用nginx做代理后端的apache运行php来提供服务.apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现"504 Gateway Time-out"查看错误日志也看不到任何东西,以为是apache的