centos7 docker nginx tomcat 动静分离 负载均衡配置

[b]mini安装centos7 64位[/b]

yum -y update
yum -y install lrszs nettools


[b]关闭selinux[/b]
vi /etc/selinux/config,把里边的一行改为

SELINUX=disabled

改了之后保存,然后重启就可以了。
getenforce

[b]安装docker[/b]

yum install docker docker-devel
systemctl start docker.service
systemctl enable docker.service


[b]docker基本命令说明[/b]

docker ps 正在运行的容器
docker ps -a 所有容器
docker images 所有镜像
docker rm [容器id] 删除容器
docker rm -f [容器id] 强制删除容器
docker rmi [镜像id] 删除镜像
docker rmi -f [镜像id] 强制删除镜像
docker run -it -v[本地目录]:[docker目录] [镜像id] /bin/bash 启动容器
docker run -itd -p [本地端口]:[docker端口] -v[本地目录]:[docker目录] [镜像id] /bin/bash 启动端口启动容器
docker exec -i -t [容器id]/bin/bash console容器
docker stop [容器id] 停止容器
docker commit [容器id] 镜像名称:版本号, 根据容器创建镜像生产版本号


[b]获取centos镜像[/b]

docker pull centos


[b]查看镜像[/b]

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 001 196e0ce0c9fb 12 days ago 196.6 MB


[b]修改镜像名[/b]

docker tag [镜像id] [镜像名]:[版本号]


[b]启动容器,配置nginx,生成nginx镜像[/b]

vi /etc/selinux/config
SELINUX=disabled

mkdir -p /root/software /mnt/software /application/nginx/html/pic /application/nginx/html/css /application/nginx/conf/ext.d /application/nginx/logs
docker run -itd -p 80:80 -v /root/software:/mnt/software [镜像id] /bin/bash
docker exec -i -t [容器id] /bin/bash
yum -y update
yum -y install lrszs nettools
yum -y install pcre pcre-devel openssl openssl-devel gcc-c++
useradd -s /sbin/nologin -M nginx
tar zxvf nginx-1.13.5.tar.gz
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.13.5 --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /application/nginx-1.13.5/ /application/nginx
cd /application/nginx/conf
egrep -v "#|^$" nginx.conf.default > nginx.conf
mkdir -p /application/nginx/conf/ext.d


[b]修改nginx.conf[/b]
vi /application/nginx/conf/nginx.conf

worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;

events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 64k;
client_max_body_size 8m;
sendfile on;
autoindex on;
keepalive_timeout 65;
include /application/nginx/conf/ext.d/*.conf;
}


[b]退出docker,生成镜像[/b]

exit
docker stop [容器id]
docker commit [容器id] nginx:1.0
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.0 c2dc10ae5d59 24 hours ago 353.6 MB
centos7 001 196e0ce0c9fb 12 days ago 196.6 MB


[b]创建目录[/b]

mkdir -p /root/software /mnt/software /application/nginx/html/pic /application/nginx/html/css /application/nginx/conf/ext.d /application/nginx/logs
/application/tc01 /application/tc02


[b]配置nginx其他配置文件[/b]
cd /application/nginx/conf/ext.d/
vi cluster_tomcat.conf

upstream cluster_tomcat {
server 172.16.33.250:9090 max_fails=3 weight=1 fail_timeout=60s;
server 172.16.33.250:9091 max_fails=3 weight=1 fail_timeout=60s;
}

vi gzip.conf

gzip on; #开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

vi test_server.conf

server {
listen 80;
server_name 172.16.33.250;
location / {
root html;
index index.html index.htm;
}
location ~ .*\.(jsp|jspx|do)?$ {
proxy_pass http://cluster_tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
root html/pic;
expires 3d;
}
location ~* \.(css|js)$ {
root html/css;
expires 1d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

vi fastcgi.conf

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;


[b]挂载目录启动nginx镜像[/b]

docker run --name nginx_web -itd -p 80:80 -v /application/nginx/conf/ext.d/:/application/nginx/conf/ext.d/ -v /application/nginx/html/:/application/nginx/html/ -v /application/nginx/logs/:/application/nginx/logs/ nginx:1.0 /bin/bash
docker exec -i -t [容器id] /bin/bash


[b]检查docker里面nginx配置文件正常与否[/b]

/application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.13.5/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.13.5/conf/nginx.conf test is successful


[b]检查docker里面启动nginx[/b]

/application/nginx/sbin/nginx


[b]检查html是否正常访问[/b]
cd /application/nginx/html/
vi index.html



index


####### nginx index test



docker外访问
curl http://172.16.33.250

[b]再次挂载centos7镜像,配置tomcat,生成tomcat镜像[/b]

docker run -it -v /root/software:/mnt/software [镜像id] /bin/bash
cd /mnt/software
tar -zxvf apache-tomcat-7.0.81.tar.gz
mv apache-tomcat-7.0.81 /application/tomcat
tar -zxvf jdk-8u144-linux-x64.tar.gz
mv /root/software/jdk1.8.0_144/ /application/jdk

vi /etc/profile

JAVA_HOME=/application/jdk
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

source /etc/profile
java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

vi /root/run.sh
#!/bin/bash
source /etc/profile
sh /application/tomcat/bin/catalina.sh run
chmod u+x /root/run.sh

退出docker
exit


[b]生成tomcat镜像[/b]

docker commit [容器id] tomcat:1.0


vi /application/tc01/index.jsp
tomcat01

vi /application/tc02/index.jsp
tomcat02


[b]挂载目录启动tomcat镜像容器[/b]
docker run --name tomcat_01 -itd -p 9090:8080 -v /application/tc01/:/application/tomcat/webapps/ROOT/ tomcat:1.0 /root/run.sh
docker run --name tomcat_02 -itd -p 9091:8080 -v /application/tc02/:/application/tomcat/webapps/ROOT/ tomcat:1.0 /root/run.sh

[b]测试tomcat[/b]

curl http://172.16.33.250:9090/index.jsp
tomcat01
curl http://172.16.33.250:9091/index.jsp
tomcat02


[b]测试nginx静态[/b]

curl http://172.16.33.250/index.html



index


####### nginx index test




[b]测试nginx动态[/b]

for((i=1;i<=10;i++));do curl http://172.16.33.250/index.jsp;done
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02
tomcat01
tomcat02


[b]docker ps[/b]

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06c418118a67 3977c664af2d "/bin/bash" 26 hours ago Up 26 hours 0.0.0.0:80->80/tcp kickass_jepsen
bed9b0fd8dd5 tomcat:1.0 "/root/run.sh" 28 hours ago Up 28 hours 0.0.0.0:9091->8080/tcp tender_perlman
321877b25511 tomcat:1.0 "/root/run.sh" 28 hours ago Up 28 hours 0.0.0.0:9090->8080/tcp stupefied_engelbart


[b]docker images[/b]

REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.0 c2dc10ae5d59 25 hours ago 353.6 MB
tomcat 1.0 ae63e6316a77 46 hours ago 662.4 MB
centos7 001 196e0ce0c9fb 12 days ago 196.6 MB


[b]如果要修改nginx的配置文件,直接在宿主机上的/application/nginx/conf/ext.d/目录下修改*.conf ;使用下面命令加载配置文件:[/b]

docker exec [容器id] /application/nginx/sbin/nginx -t
docker exec [容器id] /application/nginx/sbin/nginx -s reload

你可能感兴趣的:(服务器)