首页 > 解决方案 > 使用 Nginx 访问容器

问题描述

我有一个 Centos 7 服务器。在这台服务器上我有 Nginx。

在这个服务器中,我有一个包含我的应用程序的 Docker。

应用程序.yml:

version: '2'
services:
    myBrand-app:
        image: myBrand
        environment:
            - _JAVA_OPTIONS=-Xmx512m -Xms256m
            - SPRING_PROFILES_ACTIVE=prod,swagger
            - SPRING_DATASOURCE_URL=jdbc:postgresql://myBrand-postgresql:5432/myBrand
            - SLEEP=10 # gives time for the database to boot before the application
        ports:
            - 8080:8080
    myBrand-postgresql:
        extends:
            file: postgresql.yml
            service: myBrand-postgresql

可以通过我的服务器的 ip 通过 Nginx 代理访问 Docker 吗?

我想使用 Nginx 作为容器的反向代理

标签: dockernginxcentos7

解决方案


是的你可以。

示例 docker-compose.yml

version: '3'

services:
  web:
    container_name: 'web'
    restart: always
    build: ./web
    ports:
      - "8080:8080"
    command: run_your_backend --port=8080

  nginx:
    container_name: 'nginx'
    image: "nginx"
    restart: always
    ports:
      - "80:80"
    links:
      - web:web
    volumes:
    - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

nginx 配置作为代理的示例

upstream backend {
    server web:8080;
}


server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }
}

推荐阅读