架构图

简介: 用户访问负载均衡服务器,负载均衡服务器将相应的请求转发至应用服务器APP1或APP2。当前其中一台应用服务器down调的时候,负载均衡服务器将会把请求转发至另一台正常的服务器上。
步骤
安装负载均衡服务器
1 2 3 4 5 6 7 8 9 10 11
| sudo apt-get update
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:nginx/development -y
sudo apt-get update
sudo apt-get -y install nginx
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
sudo apt-get update
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:nginx/development -y
sudo apt-get update
sudo apt-get -y install nginx
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
sudo service nginx start
|
配置 nginx 服务器为负载均衡服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| upstream backend { server pravite-ip-address-1; server pravite-ip-address-2; }
server { listen 80 default_server; listen [::]:80 default_server; server_name nuli.io www.nuli.io;
location / { add_header X-Content-Type-Options nosniff; proxy_set_header X-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_hide_header X-Powered-By; proxy_hide_header Vary;
proxy_pass http://backend; proxy_redirect upstream backend { server pravite-ip-address-1; server pravite-ip-address-2; }
server { listen 80 default_server; listen [::]:80 default_server; server_name nuli.io www.nuli.io;
location / { add_header X-Content-Type-Options nosniff; proxy_set_header X-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_hide_header X-Powered-By; proxy_hide_header Vary;
proxy_pass http://backend; proxy_redirect off; }
}
|
检测 nginx 配置并重启 nginx 服务
1 2
| sudo nginx -t
sudo nginx -t sudo service nginx reload
|
安装应用服务器 APP1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| sudo apt-get update
sudo apt-get -y install zsh htop zip unzip composer
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:nginx/development -y sudo apt-get update sudo apt-get -y install nginx sudo service nginx start
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php -y sudo apt-get update
sudo apt-get -y install php7.2 sudo apt-get -y install php7.2-mysql sudo apt-get -y install php7.2-fpm sudo apt-get -y install php7.2-curl php7.2-xml php7.2-json php7.2-gd php7.2-mbstring php7.2-bcmath
sudo service php7.2-fpm restart
sudo sudo apt-get update
sudo apt-get -y install zsh htop zip unzip composer
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:nginx/development -y sudo apt-get update sudo apt-get -y install nginx sudo service nginx start
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php -y sudo apt-get update
sudo apt-get -y install php7.2 sudo apt-get -y install php7.2-mysql sudo apt-get -y install php7.2-fpm sudo apt-get -y install php7.2-curl php7.2-xml php7.2-json php7.2-gd php7.2-mbstring php7.2-bcmath
sudo service php7.2-fpm restart
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
|
安装应用服务器 APP2 (同 APP1)
测试负载均衡
- 在 APP1 服务器上的
/var/www/html 目录下将 index.html 文件内容更改为 APP1。
- 在 APP2 服务器上的
/var/www/html 目录下将 index.html 文件内容更改为 APP2。
- 访问负载均衡服务器 ip 地址或配置的域名。此时页面将交替显示 APP1 和 APP2 。~~~成功。
使用 Envoy 将 Laravel 项目同时部署在所有负载均衡的机器上
- 在本机上创建 Laravel 项目
- 将项目提交到 coding 或 github 上
- 配置 coding 或 github 的ssh (可选)
- 使用 ssh 或 https 的方式将项目部署到 APP1 和 APP2 服务器上
- 配置两台服务器的 .env 文件 保证两台服务器的 APP_KEY 要一直
- 测试——访问负载均衡服务器可以看到 Laravel 欢迎语
- 在本机中的 Laravel 项目中安装 Envoy 扩展 参考文档
- 在项目根目录新增
Envoy.blade.php 文件并在文件中增加如下内容。「需要注意的是:本机可以通过 ssh 的方式访问对应的服务器」
1 2 3 4 5 6 7 8 9
| @servers(['web-1' => 'ssh root@192.168.3.11', 'web-2' => 'ssh root@192.168.3.11'])
@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true])
cd /@servers(['web-1' => 'ssh root@192.168.3.11', 'web-2' => 'ssh root@192.168.3.11'])
@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true])
cd /var/www/laravel-deploy
sudo git pull origin master
@endtask
|
- 运行部署命令
envoy run deploy ,如果输出内容没有错误的话,就表示部署成功,就可以在负载均衡服务器上进行查看了。