侧边栏壁纸
博主头像
Blog博主等级

行动起来,活在当下

  • 累计撰写 211 篇文章
  • 累计创建 94 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

nginx反向代理应用

使用 Tomcat 作为后端服务

步骤1:修改 docker-compose.yml 文件

version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - backend

  backend:
    image: tomcat:9   # 使用 Tomcat 官方镜像
    container_name: tomcat-backend
    expose:
      - "8080"  # Tomcat 默认监听 8080 端口
    volumes:
      - ./webapps:/usr/local/tomcat/webapps  # 将本地 webapps 目录挂载到 Tomcat 容器

解释:

  • backend 服务现在使用了 tomcat:9 官方镜像。

  • expose: 8080 表示 Tomcat 容器内部监听 8080 端口(它不会直接暴露到宿主机,但 Nginx 容器可以通过该端口访问)。

  • volumes 挂载了一个本地的 webapps 目录到 Tomcat 容器中的 /usr/local/tomcat/webapps,这是 Tomcat 默认存放 Web 应用的地方。你可以将你的 .war 文件放在 webapps 目录中,Tomcat 会自动部署它。

步骤 2: 配置 Nginx

nginx/default.conf 文件中的配置无需更改,继续保持如下配置,确保 Nginx 将请求转发到 Tomcat:

server {
    listen 80;

    location / {
        proxy_pass http://backend:8080;  # 将请求转发到 Tomcat 服务的 8080 端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

步骤 3: 启动服务

确保你已经在项目目录中,然后执行以下命令启动 Docker Compose:

docker-compose up -d

这会启动 Tomcat 和 Nginx 容器,Tomcat 会监听 8080 端口,Nginx 会将请求反向代理到 Tomcat 上。

步骤 4: 测试

你可以通过浏览器访问主机的 IP 地址或 localhost 来测试反向代理:

curl http://localhost

Nginx 会将请求转发给 Tomcat,Tomcat 会根据你的应用返回响应。

步骤 5: 部署应用

如果你有一个 Web 应用(例如 .war 文件),可以将它放在项目中的 webapps 目录下,Tomcat 会自动部署这个应用。你可以使用 docker-compose down 停止服务,然后通过以下命令重新启动:

docker-compose up -d

Tomcat 会重新加载并部署新的应用。

总结

  • 后端服务:使用 Tomcat 镜像并将其配置为监听 8080 端口。

  • Nginx 反向代理:将所有请求代理到 Tomcat 上,通过 proxy_pass 实现。

  • 应用部署:通过挂载本地 webapps 目录,将 .war 文件部署到 Tomcat 中。

这样,Tomcat 和 Nginx 就可以很好地结合使用,Nginx 作为反向代理,Tomcat 作为后端应用服务器。

0

评论区