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退出编辑。至此一个基础的负载均衡就配置完成了