在CentOS 7上使用Docker Swarm(CE)进行粘性会话
使用其他系统?简介Docker Swarm将您的单个服务器转变为计算机集群,从而促进扩展,高可用性和扩展性。
运行Web应用程序时,通常希望充分利用资源,而不必转换软件以使用多线程或复杂事件循环。但是,Docker确实为您提供了一种简单的方法,可让您在内部对应用程序进行负载平衡以充分利用服务器资源。本文将向您展示如何使用Nginx在CentOS上使用Docker平衡Web应用程序。
我们将使用rust构建这个简单的应用程序。假设您已经安装了rust,请运行cargo new webapp –bin
。成功后,您将看到一个名为的目录webapp
。在其中webapp
,您会看到一个名为的文件Cargo.toml
。在其上附加以下几行:
[dependencies.iron]
version = "*"
接下来,在src/main.rs
文件内部,删除所有内容并使用以下内容进行填充:
extern crate iron;
use iron::prelude::*;
use iron::status;
fn main() {
Iron::new(|_: &mut Request| {
Ok(Response::with((status::Ok, "Hello Vultr :)")))
}).http("0.0.0.0:3000").unwrap();
}
注意:请勿在应用程序中更改IP。对其进行配置,以便Docker可以侦听您的应用程序。
完成后,通过执行编译应用程序cargo build –release
。根据您的服务器,可能需要几分钟。如果没有错误,请按照以下步骤测试应用程序:
target/release/webapp
。http://0.0.0.0:3000/
在浏览器中导航到。替换0.0.0.0
为服务器的IP地址。如果一切正常,您将在页面上看到“ Hello Vultr :)”。
创建一个Dockerfile
,并用以下内容填充它:
FROM centos:latest
MAINTAINER User <user@localhost>
RUN yum update -y
COPY ./webapp/target/release/webapp /opt/
EXPOSE 3000
WORKDIR /opt
CMD ./webapp
保存文件。然后创建一个名为的文件deploy.sh
,并使用以下内容进行填充:
DEFAULT_PORT=45710
APP_PORT=3000
DEPLOY=5
NAME="webapp"
docker build -t webapp:example .
for ((i=0; i<DEPLOY; i++)); do
docker kill $NAME$i ; docker rm $NAME$i
docker run --name $NAME$i -p 127.0.0.1:$(((i * 1000) + DEFAULT_PORT)):$APP_PORT -d webapp:example
done
运行此脚本时,它将生成映像并根据您设置的数量(默认值为5)部署容器。如果该容器存在,它将在再次部署之前将其杀死并从注册表中删除。
现在,创建一个Nginx配置文件,并用以下内容填充它:
upstream application {
server localhost:45710;
server localhost:46710;
server localhost:47710;
server localhost:48710;
server localhost:49710;
}
server {
listen 0.0.0.0:80;
location / {
expires 1w;
proxy_pass http://application;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
替换0.0.0.0
为服务器的IP地址。
通过执行重启Nginx systemctl restart nginx
。解决所有错误,然后继续下一步。
通过运行部署应用程序bash ./deploy.sh
。
您可以使用docker ps
- 检查应用程序的状态-将创建5个以开头的图像webapp
。现在,http://0.0.0.0:3000/
在浏览器中导航到,您将再次看到“ Hello,Vultr :)”消息。
那么,这到底有什么不同?
如果针对负载均衡器配置运行基准测试,则会注意到您正在使用更多的服务器资源,这正是您想要的,特别是如果您的应用程序是使用Node之类的语言构建的,则该语言通常是单线程的。如果您需要升级应用程序,则可以这样做,然后重新运行deploy.sh
来重建映像并部署容器。
使用其他系统?简介Docker Swarm将您的单个服务器转变为计算机集群,从而促进扩展,高可用性和扩展性。
Rancher OS是围绕Docker构建的非常轻量级的Linux发行版。操作系统本身的重量约为20MB。本教程将帮助您入门和运行
借助Vultr Docker应用程序,您可以轻松地在Vultr服务器实例上部署Docker。同时,您可以方便地进行Docker管理任务
简介Docker是一个应用程序,可让我们部署作为容器运行的程序。它是用流行的Go编程语言编写的
概述RancherOS是一个非常轻量级的操作系统(仅约60 MB),它以PID 0作为运行系统服务的方式运行系统Docker守护程序。
我们都知道并喜欢Docker,这是一个在多台机器上创建,管理和分发应用程序容器的平台。Docker Inc.提供服务
使用其他系统?简介Docker是一个允许在虚拟容器内部署软件的应用程序。它写在G
LXC容器(Linux容器)是Linux中的一种操作系统功能,可用于在单个主机上运行多个隔离的Linux系统。塞斯
本教程介绍了Docker入门的基础知识。我假设您已经安装了Docker。本教程中的步骤将适用于
本文将向您展示如何在Docker容器中部署Node应用程序。注意:本教程假定您已安装Docker并已阅读
使用其他系统?简介Rancher是一个用于运行容器和构建私有容器服务的开源平台。牧场主是基地
Kubernetes是Google开发的开放源代码平台,用于跨服务器集群管理容器化应用程序。它以十年为基础
简介本指南将向您展示如何使用多个Alpine Linux 3.9.0服务器和Portainer创建和配置Docker群。请注意
使用其他系统?简介Docker Swarm将您的单个服务器转变为计算机集群。便于扩展,高可用性和
Harbor是一个开放源代码的企业级注册服务器,用于存储和分发Docker映像。Harbor扩展了开源Docker Distribution b
概述本文旨在帮助您立即建立Kubernetes集群并使用kubeadm运行。本指南将在以下位置部署两台服务器
前提条件Docker引擎1.8+。至少4GB的磁盘空间。至少4GB的RAM。步骤1.安装Docker为了安装SQL-Server,Docker mus
使用其他系统?Docker是一个允许部署作为容器运行的程序的应用程序。它是用流行的Go程序编写的
PHP应用程序通常由Web服务器,关系数据库系统和语言解释器本身组成。在本教程中,我们将继续学习
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。