![nGrinder - General Architecture][1]
Host name of each containers.
- Agent: ngrinder-agent
- Target: ngrinder-target
- Controller: ngrinder-controller
# git clone https://github.com/ruo91/docker-ngrinder /opt
# docker build --rm -t ngrinder:controller /opt/docker-ngrinder/controller
# docker run -d --name="ngrinder-controller" -h "ngrinder-controller" ngrinder:controller
# docker build --rm -t ngrinder:agent /opt/docker-ngrinder/agent
Run four containers.
# docker run -d --name="ngrinder-agent-1" -h "ngrinder-agent-1" \
--link=ngrinder-controller:ngrinder-controller ngrinder:agent
# docker run -d --name="ngrinder-agent-2" -h "ngrinder-agent-2" \
--link=ngrinder-controller:ngrinder-controller ngrinder:agent
# docker run -d --name="ngrinder-agent-3" -h "ngrinder-agent-3" \
--link=ngrinder-controller:ngrinder-controller ngrinder:agent
# docker run -d --name="ngrinder-agent-4" -h "ngrinder-agent-4" \
--link=ngrinder-controller:ngrinder-controller ngrinder:agent
I use Nginx as a web server.
# docker build --rm -t ngrinder:target /opt/docker-ngrinder/target
# docker run -d --name="ngrinder-target" -h "ngrinder-target" \
--link=ngrinder-controller:ngrinder-controller ngrinder:target
# echo "`docker inspect -f '{{ .NetworkSettings.IPAddress }}' ngrinder-controller` ngrinder-controller" >> /etc/hosts
# nano /etc/nginx/nginx.conf
## Nginx ##
user nginx;
pid logs/nginx.pid;
error_log logs/error.log;
access_log off;
worker_processes 2;
events {
worker_connections 1024;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
types_hash_max_size 2048;
server_names_hash_bucket_size 64;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
## TCP options
tcp_nodelay on;
tcp_nopush on;
# Virtualhost
server {
listen 80;
server_name ngrinder.example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ngrinder-controller:80;
client_max_body_size 10M;
}
}
}
# nginx -s reload
![Login][2]
![Home][3]
![Agent Management][4]
![Agent Management2][5]
![Quick Start][6]
![Quick Start2][7]
![Schedule Setting][8]
![Performance Test][9]
![Performance Test2][10]
![Performance Test - Detail Report][11]
Thanks. :-) [1]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-Architecture.png [2]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-0.png [3]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-1.png [4]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-2.png [5]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-3.png [6]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-4.png [7]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-5.png [8]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-6.png [9]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-7.png [10]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-8.png [11]: http://cdn.yongbok.net/ruo91/img/nGrinder/nGrinder-9.png