1. 程式人生 > >Centos環境下nginx結合docker快速實現一個簡易的負載均衡

Centos環境下nginx結合docker快速實現一個簡易的負載均衡

restart data set 一個 etc 服務器 ble 運行 fault

1、安裝並運行nginx:
1)安裝:yum install nginx
2)配置nginx開機自啟動:
systemctl enable nginx,systemctl start nginx
說明:默認配置文件目錄:/etc/nginx/nginx.conf,默認頁面目錄:/usr/share/nginx/html,默認log目錄:/var/log/nginx

2、docker拉取nginx鏡像:docker pull nginx

3、創建兩個站點:/mydata/test1,/mydata/test2/,每個站點下面創建一個名為index.html文件,在第一個html中輸出this is nginx1,在第二個html中輸出this is nginx2

4、通過docker運行兩個nginx服務器的容器,並分別將靜態目錄映射到我們剛剛創建的目錄中
docker run --name nginx-test -d -p 8080:80 -v /mydata/test1:/usr/share/nginx/html nginx #第一個,將8080端口映射到容器中的80端口<br/>docker run --name nginx-test1 -d -p 8081:80 -v /mydata/test2:/usr/share/nginx/html nginx #第二個,將容器中的8081端口映射到容器中的80端口
5、修改宿主機中的nginx的配置文件
在http{}中添加如下代碼
upstream myweb{<br/>server 127.0.0.1:8081 weight=5;<br/>server 127.0.0.1:8082 weight=1;<br/>}


6、進入conf.d目錄,修改default.conf(conf.d中沒有此文件可以新建,文件名隨意,後綴必須是.conf)
location / { <br/>root /usr/share/nginx/html;<br/>index index.html index.htm;<br/> proxy_pass http://myweb; #myweb為之前在nginx.conf中upstream後定義的名字<br/>}
7、保存後退出,重啟服務器:systemctl restart nginx,這時就可以通過http://localhost或者http://127.0.0.1看見效果了,如果不能,則繼續看下面

8、補充很關鍵的一個地方(折騰了好久)
查看錯誤日誌:tail -n 10 /var/log/nginx/error.log,會發現提示訪問8080和8081 Permission denied,也就是權限不夠
更改一下權限就好了:setsebool -P httpd_can_network_connect 1,更改後記得重啟一下nginx服務:systemctl restart nginx

Centos環境下nginx結合docker快速實現一個簡易的負載均衡