Docker+nginx+tomcat配置負載均衡
阿新 • • 發佈:2019-02-16
源碼 eight size 下載源 serve host 輸出 ots wan 本文介紹在Docker上配置簡單的負載均衡,宿主機為CenteOS7,兩個CentOS容器,宿主機安裝Nginx,兩臺容器安裝tomcat7。
在宿主機上安裝啟動nginx
http://nginx.org/en/download.html 下載源碼包,編譯安裝
啟動nginx,在瀏覽器中查看http://192.168.0.101
啟動一個容器並設置端口映射,其中一臺命令如下
docker run -t -i -p 3222:22 -p 3280:80 970633036444 /bin/bash
上面的命令是以標準的bash輸出方式啟動一個容器,設置端口映射,用-p參數,-p 宿主機端口:docker容器端口 ,上面的命令是設置宿主機的3222端口映射到容器的22端口,設置宿主機的3280的端口映射到容器的80端口。
在容器中安裝jre和tomcat7.0,安裝jre
rpm -ivh jre-8u101-linux-x64.rpm
java -version
tar zxvf apache-tomcat-9.0.0.M9-src.tar.gz
cd apache-tomcat-9.0.0.M9-src/bin/
sh startup.sh
啟動tomcat,進入解壓目錄,cd到bin目錄,執行命令並輸入如下信息,說明tomcat啟動成功
[root@aeb981d88b99 bin]# sh startup.sh
Using CATALINA_BASE: /root/apache-tomcat-9.0.0.M9-src
Using CATALINA_HOME: /root/apache-tomcat-9.0.0.M9-src
Using CATALINA_TMPDIR: /root/apache-tomcat-9.0.0.M9-src/temp
Using JRE_HOME: /usr
Using CLASSPATH: /root/apache-tomcat-9.0.0.M9-src/bin/bootstrap.jar:/root/apache-tomcat-9.0.0.M9-src/bin/tomcat-juli.jar
Tomcat started.
由於tomcat默認端口是8080,這裏設置的是80端口,所以,需要修改默認端口到80,進入tomcat安裝目錄的conf目錄,用vi打開server.xml文件,將如下配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改為
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
同上面的步驟一致,配置另外一臺容器,只是容器啟動時設置的映射端口有所區別,命令如下:
docker run -t -i -p 3223:22 -p 3380:80 970633036444 /bin/bash
docker inspect --format ‘{{ .NetworkSettings.IPAddress }}‘ 容器ID 查看容器IP
容器配置完成後,剩下的工作就是配置宿主機的Nginx,用來完成負載均衡工作。
進入/etc/nginx目錄,用vim編輯nginx.conf,在http節點中增加如下內容:
server {
listen 80;
server_name 192.168.0.101;
location / {
proxy_pass http://blance;
}
}
upstream blance{
server localhost:3280 weight=5;
server localhost:3380 weight=5;
}
首先定義一個upstream,設置web服務器的端口映射和權重,之後定義一個server,監聽80端口,server_name為 192.168.1.106,這是宿主機的ip地址(可配置成域名),“location /” 意思是監聽80端口下的所有請求,並使用上面設置的upstream作為代理。
9.完成以上配置並保存後,在瀏覽器中訪問http://192.168.1.106/hello.html,並刷新頁面,會發現頁面有時顯示 “hello this is 172.17.0.3”,有時顯示“hello this is 172.17.0.2”,說明配置成功,這樣就完成了一個簡單的負載均衡環境的配置。
Docker+nginx+tomcat配置負載均衡