欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docket环境下nginx反向代理tomcat

程序员文章站 2022-07-12 20:53:26
...

docket环境下nginx反向代理tomcat

Docker 是一个开源的商业产品,有两个版本,
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用

演示环境:VMware下的centos7.5系统,centos使用的是root账号

一、安装docker

Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 

1.通过 uname -r 命令查看你当前的内核版本

uname -r

2.使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

3.卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6.可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7.安装docker

sudo yum install -y docker-ce 

8.启动并加入开机启动

systemctl start docker
systemctl enable docker

9.验证安装是否成功,有client和service两部分表示docker安装启动都成功了

docker version

二、docker阿里云镜像加速

点击跳转阿里云镜像加速地址
https://cr.console.aliyun.com/cn-hangzhou/mirrors
需要登录自己的阿里云账户,然后根据阿里云的操作文档设置即可

三、docker下载nginx镜像与tomcat镜像
这里统统使用pull方式获取镜像
1.查找 Docker Hub 上的 nginx 镜像

docker search nginx

2.我们拉去官方的镜像

docker pull nginx

3.拉去官方tomcat的镜像

docker pull tomcat

4.分别等待下载完成后我们可以在本地镜像列表里面看到

docker images

docket环境下nginx反向代理tomcat
四、启动tomcat
1.启动命令

docker run -p 8080:8080 --name tomcat0 -d tomcat

这个run命令语法如下,看需要配置,我这里只需要配置端口,名称,名称后面会用的到。

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-p: 端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

–name=“nginx-lb”: 为容器指定一个名称;

–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h “mars”: 指定容器的hostname;

-e username=“ritchie”: 设置环境变量;

–env-file=[]: 从指定文件读入环境变量;

–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

–link=[]: 添加链接到另一个容器;

–expose=[]: 开放一个端口或一组端口;

2.命令查看容器是否运行
查看正在运行的容器

docker ps

查看全部的容器

docker ps -a

docket环境下nginx反向代理tomcat
然后打开浏览器,输入http://ip:8080验证是否能正常访问
如下图:
docket环境下nginx反向代理tomcat
五、启动并配置nginx
1、启动命令

docker run -p 80:80 --name mynginx --link tomcat0:t0 -d nginx

这里使用的是docker run命令,命令格式上面已经展示了,这里多配置了 --link属性,就是要与tomcat关联。

2.我们可以使用命令查看正在运行的容器

docker ps

查看全部的容器

docker ps -a

docket环境下nginx反向代理tomcat
3.准备配置文件

user nginx;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    upstream tomcat_server {
        server t0:8080;
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
           proxy_pass http://tomcat_server;
           proxy_redirect default;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        	}

	}
}

其中t0是我们刚才创建容器指定的

4.复制配置文件进入nginx容器内部替换到内部的

docker cp nginx.conf mynginx:/etc/nginx

5.进入容器内部

docker exec -it mynginx /bin/bash

docker exec 命令说明:

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

6.找到容器内/etc/init.d下的nginx
docket环境下nginx反向代理tomcat
校验nginx配置文件是否有错误

nginx -t

配置文件修改重装命令

nginx -s reload

重启nginx服务

service nginx restart

停止或关闭nginx

nginx -s quit

在容器内部验证导入的配置文件有没有问题,有问题就修改,没有问题就重启容器

7.重启容器或启动容器

docker restart mynginx
docker start mynginx

8.查看容器是否启动成功

docker ps -a

9.使用浏览器访问
docket环境下nginx反向代理tomcat