代码之家  ›  专栏  ›  技术社区  ›  Anuj TBE

带nginx和gunicorn的Docker未在浏览器中打开

  •  0
  • Anuj TBE  · 技术社区  · 7 年前

    我是新来的 Docker 以及建立 docker 运行 Django 应用程序使用 gunicorn nginx

    我的配置文件是

    docker-compose.yml文件

    version: '3'
    
    services:
      nginx:
        image: nginx:latest
        container_name: "myapp-nginx"
        ports:
          - "10080:80"
          - "10443:43"
        volumes:
          - .:/app
          - ./config/nginx:/etc/nginx/conf.d
          - ./static_cdn:/static
        depends_on:
          - web
      web:
        build: .
        container_name: "myapp-dev"
        command: ./start.sh
        volumes:
          - .:/app
          - ./static_cdn:/static
        ports:
          - "9010"
        depends_on:
          - db
        expose:
          - "9010"
      db:
        image: postgres
        container_name: "myapp-db"
    

    config/nginx/nginx.conf配置

    upstream web {
        ip_hash;
        server web:9010;
    }
    
    server {
        location /static {
            autoindex on;
            alias /static/;
        }
    
        location / {
            proxy_pass http://web;
        }
        listen 9010;
        server_name localhost;
    }
    

    斯塔什

    #!/usr/bin/env bash
    
    # Start Gunicorn processes
    echo --: Starting application build
    echo --: Creating migration
    python3 manage.py makemigrations
    echo ------: makemigrations complete
    echo --: Running migration
    python3 manage.py migrate
    echo ------: migrate complete
    echo --: Running collectstatic
    python3 manage.py collectstatic <<<yes
    echo ------: collectstatic complete
    echo --: Starting Gunicorn.
    gunicorn koober.wsgi:application \
        --bind 0.0.0.0:9010 \
        --workers 3
    

    使用运行Docker

    docker-compose up --build
    

    它成功运行,输出为

    enter image description here

    Gunicorn成功启动于 0.0.0.0:9010 . 但无法使用浏览器访问应用程序。

    我试着在浏览器中跟踪地址

    1. 127.0.0.1:9010
    2. 127.0.0.1:10080
    3. 127.0.0.1
    4. 本地主机:9010
    5. 本地主机:10080
    6. 本地服务器
    7. 0.0.0.0:9010
    8. 0.0.0.0:10080
    9. 0.0.0.0

    但他们都不工作。

    编辑2:输出 docker ps -a

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   Rohan J Mohite    7 年前

    试试这个

    upstream web {
      ip_hash;
      server web:9010;
    }
    server {
    
     listen       10080;
    
     location / {
        proxy_pass http://web;
     }     
    }
    

    Nginx应该听 一万零八十 端口,因为在撰写文件中,您已经公开了端口80到10080的端口。

    然后尝试 http://localhost:10080 http://machine-ip-address:10080

    这是我写的解释Docker+Nginx+Web应用程序如何协同工作的博客。

    https://rohanjmohite.wordpress.com/2017/08/02/how-to-configure-docker-with-nginx-and-php-application/

    源代码 https://github.com/RohanMohite/Docker-Nginx-PHP/blob/master/server_nginx/conf/server.conf