docker+nginx配置负载均衡

docker使用nginx并配置负载均衡

此文仅做记录,欢迎大佬指正错误,如果能帮到你那就更好啦
如果你还未安装docker,或者你还不会发布.net的项目,可以看这个链接

前提条件:在docker部署三个项目,如下图

在这里插入图片描述

一、服务器版本

  • CentOS7.6

二、安装、配置nginx

2.1、拉取nginx镜像
docker pull nginx

查看nginx镜像

docker images

如图

在这里插入图片描述

2.2、创建容器

创建一个名称为dockerdemo_nginx 的容器
这里的80:80是将容器的80端口映射到主机的80,前面的数字就是对外开放的端口,后面的字段是nginx容器的内部端口

docker run -d --name dockerdemo_nginx -p 80:80 nginx
2.3、进入nginx容器,并配置
docker exec -it dockerdemo_nginx /bin/bash
2.4、先查询docker下面nginx的配置文件到底在哪
find / -name "nginx.conf" 

在这里插入图片描述

2.5、进入到配置文件的目录,并打开配置文件
cd /etc/nginx/
vim nginx.conf

上面使用了vim命令,如果vim没有安装,看下面
在nginx容器的里面安装vim,如果速度太慢,一步一步执行下面的代码

//清空apt资源配置文件
echo > /etc/apt/sources.list
//修改配置文件url为阿里云的
echo -e "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib \ndeb http://mirrors.aliyun.com/debian-security stretch/updates main \ndeb-src http://mirrors.aliyun.com/debian-security stretch/updates main \ndeb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \ndeb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib \ndeb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib" > /etc/apt/sources.list
//更新apt-get
apt-get update 
//安装依赖
apt-get install -y libtinfo5 --allow-remove-essential
//安装vim
apt-get install  -y vim 

可能会出现下面的错误,解决办法执行apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

在这里插入图片描述

编辑配置文件,在http节点添加以下内容

cd /etc/nginx/
vim nginx.conf

在这里插入图片描述

添加以下内容

upstream 这里随便写填自己的域名也可以 { 
      ip_hash;
      server  自己服务器IP地址:8849 weight=10; 
      server  自己服务器IP地址:8850 weight=20; 
      server  自己服务器IP地址:8851 weight=20; 
}
server{ 
    listen 80; 
    server_name  这里随便写填自己的域名也可以(跟上面一样); 
    location / { 
        proxy_pass         http://这里随便写填自己的域名也可以(跟上面一样); 
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

weight:权重,权重越高越容易被访问
server:定义虚拟主机,监听80端口
upstream:配置负载均衡的地址
proxy_pass :反向代理
ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,解决session的问题。

编辑完成之后先按esc键,然后输入:wq退出编辑。至此一个基础的负载均衡就配置完成了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过在同一台Docker主机上部署负载均衡Nginx来实现。以下是一种可能的方式: 1. 首先,您需要安装DockerDocker Compose。您可以按照官方文档的说明进行安装。 2. 创建一个名为`docker-compose.yml`的文件,并在其中定义您的负载均衡Nginx服务。以下是一个示例配置: ```yaml version: '3' services: load_balancer: image: your_load_balancer_image ports: - 80:80 networks: - app_network nginx: image: nginx ports: - 8080:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf networks: - app_network networks: app_network: driver: bridge ``` 在上面的示例中,我们定义了两个服务:`load_balancer`和`nginx`。`load_balancer`是您自己创建的负载均衡服务的Docker镜像,而`nginx`是官方的Nginx镜像。 3. 创建一个名为`nginx.conf`的文件,并将其挂载到`nginx`服务的容器中。在该文件中,您可以定义Nginx配置,例如反向代理到负载均衡器的地址。以下是一个示例配置: ```nginx server { listen 80; server_name localhost; location / { proxy_pass http://load_balancer; } } ``` 在上面的示例配置中,Nginx通过反向代理将所有请求转发到`load_balancer`服务的地址。 4. 使用以下命令启动Docker容器: ```bash docker-compose up -d ``` 这将使用`docker-compose.yml`文件中的配置启动负载均衡Nginx服务。 现在,您可以通过访问主机的IP地址和端口号(例如`http://localhost:8080`)来访问Nginx服务器。Nginx将会将请求转发到负载均衡器,然后由负载均衡器将请求分发给后端服务。 请注意,上述示例仅提供了一种实现方式,您可能需要根据您的具体需求进行调整和配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值