Ubuntu下用docker和nginx实现负载均衡
本文最后更新于2023年3月18日,已超过613天没有更新,若内容或图片失效,请留言反馈。
Ubuntu下用docker和nginx实现负载均衡,需要安装docker和编译安装nginx。
在安装好docker以后,可以修改/etc/docker/daemon.json
文件并添加上 registry-mirrors 键值。
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
修改保存后重启 Docker 使配置生效。
完成上述步骤后,我们接下来:
1.使用docker拉取nginx镜像
docker pull nginx
2.创建两个目录,分别用于存放两个容器对应的网页
mkdir -p /data/demo1
mkdri -p /data/demo2
分别在两个目录下创建index.html
文件。
demo1
下的index.html内容为
<h1>
This is demo One!
</h1>
demo2
下的index.html内容为
<h1>
This is demo Two!
</h1>
3.运行两个容器,并将网页目录映射到刚刚创建的两个目录。
容器1的80端口映射到8081端口。
docker run --name nginx-demo1 -d -p 8081:80 -v /data/demo1:/usr/share/nginx/html nginx
容器2的80端口映射到8082端口。
docker run --name nginx-demo2 -d -p 8082:80 -v /data/demo2:/usr/share/nginx/html nginx
需要注意的是,nginx镜像中,默认的网页目录为/usr/share/nginx/html
。
4.修改宿主机的nginx配置,以下配置可供参考
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream fengtalk {
server 172.18.0.1:8081 weight=1;# 172.18.0.1为docker内部IP地址
server 172.18.0.1:8082 weight=1;# 可通过ifconfig查看到
}
server {
listen 80;
server_name 192.168.50.251;# 把域名或IP地址替换成你自己的
location / {
proxy_redirect off;
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://fengtalk;# 与上面的upstream后名称对应
}
}
}
5.保存配置并重启nginx
6.此时,在浏览器打开IP或域名对应的地址。刷新页面时,如果内容This is demo One!
和This is demo Two!
来回切换,说明负载均衡配置成功。
评论已关闭