簡體   English   中英

Nginx 無法從 docker-compose 找到上游

[英]Nginx can't find upstream from docker-compose

我正在嘗試運行帶有 ktor java 服務器的 nginx 代理服務器。 但是,nginx 會在這些配置中拋出“111:連接被拒絕”。 我已經在網絡上嘗試過“將上游服務器名稱從 localhost 設置為 docker compose name”,但它沒有任何幫助。
預先感謝您,並為我糟糕的英語感到抱歉。
docker-compose.yml

version: "3.8"
services:
  nginx:
    image: nginx:1.19.3
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Nginx/logs:/var/log/nginx
      - ./Nginx/confs:/etc/nginx/conf.d
      - ./Nginx/confs:/etc/nginx/keys
  mariadb:
    image: mariadb:10.5.6
    ports:
      - 3306:3306
    volumes:
      - ./Mariadb/data:/var/lib/mysql
      - ./Mariadb/confs:/etc/mysql/conf.d
      - ./Mariadb/inits:/docker-entrypoint-initdb.d
    env_file:
      - .env
    environment:
      TZ: Asia/Seoul
      MYSQL_USER: dockhyub
  yangjin208:
    build: ./Yangjin208
    ports:
      - "3000:8080"
    env_file:
      - .env
      - ./Yangjin208/.env
    links:
      - mariadb:sql

./Nginx/confs 下的 yangjin208.conf

upstream yangjin208_app {
    server yangjin208:3000;
}

server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://yangjin208_app;
        proxy_redirect off;
        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-Host $server_name;
    }
}

localhost:3000 可以通過瀏覽器訪問,沒有問題。

我認為您沒有在 nginx 中使用 yangjin208.conf。 將 yangjin208.conf 重命名為 default.conf。

所以,我發現了問題 - 似乎 docker 內部網絡使用原始端口而不是從 docker-compose.yml 的“端口”配置更改的端口。 我使用的是端口 3000(從 docker-compose 聲明的端口)而不是 8080(原始端口),這就是它不起作用的原因。 謝謝大家。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM