内容简介:是这样子的,我想让家中所有的应用服务都从nginx中出去,让nginx处于访问的最边缘地带,为了让nginx可靠性加强,所以nginx就得实现高可用,分别是下面两台机器要做nginx的集群当然上面的机器同时也要安装nginx,总的架构就是文章图片那个样子
是这样子的,我想让家中所有的应用服务都从nginx中出去,让nginx处于访问的最边缘地带,为了让nginx可靠性加强,所以nginx就得实现高可用,分别是下面两台机器要做nginx的集群
- 10.10.10.2
- 10.10.10.3
当然上面的机器同时也要安装nginx,总的架构就是文章图片那个样子
当主10.10.10.2挂了的时候可以自动切换到备10.10.10.3上的nginx,这样就实现了nginx的高可用
文中的后端应用服务可以有很多个不单单只有一个web网站
dns解析
我们从头开始
address=/www.bboysoul.com/10.10.10.10
之后用户就访问到了我们的vip,这个时候就是下一步安装keepalived的时候
安装配置keepalived
安装keepalived,记得两台机器都要安装哦
yum install keepalived
之后修改配置文件,同样两台机器都要 修改
vim /etc/keepalived/keepalived.conf
主的keepalived配置文件
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.10.10.10/24 } }
从的keepalived配置文件
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.10.10.10/24 } }
两个配置文件其实就是
priority 99
state BACKUP
两个地方不一样
之后重启服务,两台机器都要重启
systemctl restart keepalived
接着我们就是在这两台机器上安装nginx来实现反向代理,为了简单呢,我直接使用 docker 去安装nginx
安装nginx,下面的操作两台机器都要操作
首先clone我nginx的docker-compose配置文件
git clone https://github.com/bboysoulcn/awesome-dockercompose.git
cd awesome-dockercompose/nginx
启动nginx
docker-compose up -d
之后修改配置文件
vim /var/lib/docker/volumes/nginx_nginx-etc/_data/nginx.conf
user nginx; worker_processes 4; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; gzip on; # bboysoul web upstream proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=bboysoul-tmp:100m inactive=7d max_size=1000g; upstream bboysoul-web { server 10.10.10.112:8080; } server { listen 80; server_name www.bboysoul.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://bboysoul-web/; proxy_cache bboysoul-tmp; proxy_cache_valid 200 206 304 301 302 10d; proxy_cache_key $uri; } } include /etc/nginx/conf.d/*.conf; }
之后重启容器
docker-compose restart
最后我们就要安装一个后端应用服务来做测试
安装后端应用服务
同样的,上面我们再nginx上配置了后端应用服务的地址是10.10.10.112:8080
所以我们要在10.10.10.112:8080上启动一个服务,为了方便我们直接使用docker来起一个服务
在10.10.10.112上
cd awesome-dockercompose/visualizer
docker-compose up -d
之后我们访问这个服务,直接在浏览器上输入 www.bboysoul.com
如果看到visualizer的界面就表示成功了
测试
接着我们来到10.10.10.2和10.10.10.3这两台机器上
首先执行
systemctl enable keepalived
让keepalived可以开机启动
并且都执行下面的命令来看nginx的日志
docker logs -f nginx
之后我们在浏览器上访问www.bboysoul.com
不出意外的话10.10.10.2上nginx是会有日志的,也就是说我们访问的是10.10.10.2上的nginx
之后我们模拟10.10.10.2宕机,直接在10.10.10.2上执行reboot
接着快速切换到浏览器上访问 www.bboysoul.com如果不出意外的话是可以访问的并且我们访问的是10.10.10.3上的nginx,当10.10.10.2重启完成之后你会发现流量又回到了10.10.10.2上去
欢迎关注Bboysoul的博客www.bboysoul.com
Have Fun
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 浪潮InCloud OpenStack:度量可用性“三维”,实现高可用云环境
- Nginx&Keepalived 实现高可用
- Memcache 使用 Mcrouter 实现高可用
- MHA实现MySQL的高可用
- SQL Server高可用镜像实现原理
- confd+etcd实现高可用自动发现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP for the World Wide Web, Second Edition (Visual QuickStart Gu
Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99
So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!