|
This article describes how to configure simple load balancing on Docker, host of Ubuntu 14.04.2 LTS, two CentOS container, host install Nginx, two container mounting tomcat7.
Principle of this program is to port and host port docker container to make a map (ie, a port mapped access to the host corresponding docker container port), then the host can configure Nginx, to achieve access to the host a port, according to the rules assigned to the specified service address, complete load balancing.
Configuration Steps
1. Prepare the host, the host is Ubuntu 14.04.2 LTS, installed in Vmware, the specific installation methods, not repeat them.
2. Install Nginx on the host, you can directly use the following command.
sudo apt-get install nginx
After installation is complete, you can view Nginx whether the installation is complete, you can use the following command to view the version, print out the Nginx version, then the installation was successful.
$ Nginx -v
nginx version: nginx / 1.4.6 (Ubuntu)
After that, you can use the following command to start Nginx services:
# Start Service
$ Sudo service nginx start
# Check the service status
$ Sudo service nginx status
* Nginx is running # Description Services is a start-up state
In your browser to http: // localhost
3. Download Docker image, can be ordered with a docker pull specific mirroring can be found in this article
4. Start a container and set port mapping, one of the following commands:
sudo docker run -t -i -p 3222: 22 -p 3280: 80 87e5b6b3ccc1 / bin / bash
The above command is the standard way to start a bash output container port mapping settings, use the -p parameter, the host -p port: docker container port, the above command is mapped to the container port 3222 of the host port 22, set the host port 3280 is mapped to the container port 80.
5. Install jre and tomcat7.0 in the container, install jre
wget -O jre-7u6-linux-x64.rpm http://javadl.sun.com/webapps/download/AutoDL?BundleId=67387
yum install jre-7u6-linux-x64.rpm
Check whether the installation is successful jre
java -version
java version "1.7.0_06"
Java (TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot (TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Installation tomcat7.0
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz
tar -zxvf apache-tomcat-7.0.65.tar.gz
Start tomcat, unzip into the directory, cd to the bin directory, execute the command and enter the following information, indicating a successful start tomcat
bash startup.sh
Using CATALINA_BASE: /home/apache-tomcat-7.0.65
Using CATALINA_HOME: /home/apache-tomcat-7.0.65
Using CATALINA_TMPDIR: /home/apache-tomcat-7.0.65/temp
Using JRE_HOME: / usr
Using CLASSPATH: /home/apache-tomcat-7.0.65/bin/bootstrap.jar:/home/apache-tomcat-7.0.65/bin/tomcat-juli.jar
Tomcat started.
Since tomcat default port is 8080, set here is the port 80, so you need to modify the default port 80 to enter the conf directory of tomcat installation directory, open the server.xml file in vi, the following configuration
< Connector port = "8080" protocol = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />
change into
< Connector port = "80" protocol = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />
Thereafter, this docker container, visit http: // localhost, access to the tomcat home page description tomcat installed and configured.
6. Go to the tomcat webapps / ROOT directory, since this container is ip 172.17.0.2, create a hello.html file in the file write the following "hello this is 172.17.0.2", and then visit http host : //172.17.0.2/hello.html
7. consistent with the above steps to configure other one container, but the container is set to start mapping port differ with the following command:
sudo docker run -t -i -p 3322: 22 -p 3380: 80 87e5b6b3ccc1 / bin / bash
Finally, in this container tomcat installation directory webapps / ROOT directory is created by hello.html files because this container is ip 172.17.0.3, so filled hello.html file contents "hello this is 170.17.0.3" after the host access http://172.17.0.3/hello.html
8. After the container configuration, the remaining work is to configure the host of Nginx, to complete the work load balancing.
Enter / etc / nginx directory with vim editor nginx.conf, add the following node in http:
server {
listen 80;
server_name 192.168.1.106;
location / {
proxy_pass http: // blance;
}
}
upstream blance {
server localhost: 3280 weight = 5;
server localhost: 3380 weight = 5;
}
First, define an upstream, the web server's port mapping and weights After you define a server, listening on port 80, server_name is 192.168.1.106, which is the host ip address (can be configured as domain names), "location /" means listening All requests under port 80, and use the upstream set above as a proxy.
9. The configuration is complete and saved, access the browser http://192.168.1.106/hello.html, and refresh the page, you will find page sometimes shows "hello this is 172.17.0.3", sometimes display "hello this is 172.17.0.2 ", the configuration was successful, thus completing a simple load balancing environment configuration. |
|
|
|