為了學習 Docker 相關的知識,本人學習在一臺宿主機上使用 Docker 創(chuàng)建多個 Nginx 容器飞主,然后實現(xiàn)負載均衡逆屡。主要目的是為了記錄實現(xiàn)的過程,也方便其他讀者參考与涡。
1. 安裝 Docker
我的博客上有安裝 Docker 的文章惹谐,這里就不重復編寫了,傳送門驼卖。
2. 拉取鏡像
docker pull nginx
3. 啟動容器
docker run --name nginx -d nginx
查看是否啟動成功
docker ps
從容器內復制 Nginx 配置文件
docker cp nginx:/etc/nginx/conf.d/default.conf ~/nginx/default.conf
我在home目錄創(chuàng)建三個文件夾來存儲 Nginx 的配置文件和應用文件氨肌,分貝是 master,server1酌畜,server2怎囚。master 對應負載均衡服務器,server1檩奠,server2 對應兩個應用服務器桩了。default.conf 為 Nginx 的配置文件,index.html 為 Nginx 容器的應用文件埠戳,也就是瀏覽器訪問時顯示的文件井誉,分貝寫入master,server1,server2,來區(qū)分不同的容器應用.
啟動這3個容器
# master
docker run --name master -p 81:80 --restart=always --privileged=true \
-v ~/nginx/master/conf:/etc/nginx/conf.d \
-v ~/nginx/master/html:/usr/share/nginx/html \
-d nginx
# server1
docker run --name server1 -p 82:80 --restart=always --privileged=true \
-v ~/nginx/server1/conf:/etc/nginx/conf.d \
-v ~/nginx/server1/html:/usr/share/nginx/html \
-d nginx
# server2
docker run --name server2 -p 83:80 --restart=always --privileged=true \
-v ~/nginx/server2/conf:/etc/nginx/conf.d \
-v ~/nginx/server2/html:/usr/share/nginx/html \
-d nginx
查看是否啟動成功
使用瀏覽器訪問 127.0.0.1:81,127.0.0.1:82,127.0.0.1:83整胃,測試是否能夠正常訪問.
4. 配置負載均衡
更詳細的可以查看我的博文颗圣,傳送門,編輯 master 下的default.conf 文件內容:
upstream balance {
server server1容器ip地址:80 weight=1;
server server2容器ip地址:80 weight=2;
}
server {
listen 80;
server_name localhost;
location / {
add_header X-Content-Type-Options nosniff;
proxy_set_header X-scheme $scheme;
#作用是我們可以獲取到客戶端的真實ip
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;
#重點是這里屁使,將代理轉發(fā)給上方 upstream 中配置的兩臺服務器去處理在岂,這里的 http:// 后的值必須和 upstream 后面的值一致
proxy_pass http://balance;
}
}
獲取容器的 ip 地址:
docker inspect 容器名稱
重啟 master 容器
docker restart master
使用瀏覽器訪問 127.0.0.1:81 ,正常情況下會出現(xiàn)server1蛮寂,server2字符蔽午,并且 server2 出現(xiàn)的次數(shù)是 server1 的兩倍。
End!
文章同步發(fā)布在我的個人博客中酬蹋,傳送門Hesunfly Blog