【问题标题】:Cannot configure nginx reverse proxy with php support in docker compose无法在 docker compose 中配置具有 php 支持的 nginx 反向代理
【发布时间】:2019-10-11 17:02:20
【问题描述】:

我一直在尝试在 docker compose 中配置具有 php 支持的 nginx 反向代理,该代理在端口 3838 上运行应用程序服务。我希望应用程序在端口 80 上运行 nginx-proxy。我已经梳理了几个在线教程,但没有其中一些帮助我解决了问题。我也尝试关注此https://github.com/dmitrym0/simple-lets-encrypt-docker-compose-sample/blob/master/docker-compose.yml,但没有成功。这是我当前的 docker compose 文件。

docker-compose.yml

version: '3'
services:
 nginx-proxy:
   image: jwilder/nginx-proxy
   ports:
     - "82:80"
     - "444:443"
   volumes:
     - "/etc/nginx/vhost.d"
     - "/usr/share/nginx/html"
     - "/var/run/docker.sock:/tmp/docker.sock:ro"
     - "/etc/nginx/certs"

app:
 build:
  context: .
  dockerfile: ./app/Dockerfile
 image: rocker/shiny
 container_name: docker-app
 restart: always
 ports:
  - 3838:3838

我是不是错过了什么。有时我会看到 docker-compose 文件中包含 virtual_host 环境变量。有必要吗?我还必须手动配置 nginx 配置文件并将它们附加到 jwilder/nginx-proxy dockerfile 吗?我是 docker 的新手,我真的需要一些帮助。

【问题讨论】:

    标签: docker nginx docker-compose reverse-proxy nginx-reverse-proxy


    【解决方案1】:

    请参考nginx-proxy官方文档的Multiple Ports部分。在您的情况下,除了设置一个强制性的 VIRTUAL_HOST env 变量(没有这个容器将不会被 nginx-proxy 服务反向代理),您必须将 VIRTUAL_PORT 变量设置为 nginx-proxy 将默认为服务在端口80 上运行,但您的app 服务绑定到3838 端口。

    试试这个docker-compose.yml 文件看看它是否有效:

    version: "3"
    
    services:
      nginx-proxy:
        image: jwilder/nginx-proxy
        ports:
          - "80:80"
        volumes:
          - /var/run/docker.sock:/tmp/docker.sock:ro
    
      app:
        build:
          context: .
          dockerfile: ./app/Dockerfile
        image: rocker/shiny
        container_name: docker-app
        restart: always
        expose:
          - 3838
        environment:
          - VIRTUAL_HOST=app.localhost
          - VIRTUAL_PORT=3838
    

    【讨论】:

      猜你喜欢
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多