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

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

二、docker拉取nginx鏡像:docker pull nginxnginx

三、建立兩個站點:/mydata/test1,/mydata/test2/,每一個站點下面建立一個名爲index.html文件,在第一個html中輸出this is nginx1,在第二個html中輸出this is nginx2web

四、經過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端口
五、修改宿主機中的nginx的配置文件
在http{}中添加以下代碼
upstream myweb{<br/>server 127.0.0.1:8081 weight=5;<br/>server 127.0.0.1:8082 weight=1;<br/>}
六、進入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/>}
七、保存後退出,重啓服務器:systemctl restart nginx,這時就能夠經過http://localhost或者http://127.0.0.1看見效果了,若是不能,則繼續看下面docker

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

相關文章
相關標籤/搜索