nginx обратный прокси-сервер не работает для приложения asp. net core docker - PullRequest
1 голос
/ 06 августа 2020

У меня есть asp. net веб-приложение api в контейнере docker, и оно хорошо работает с приведенными ниже командами,

 docker build -t hello-aspnetcore3 -f Api.Dockerfile .
 docker run -d -p 5000:5000 --name hello-aspnetcore3  hello-aspnetcore3

Просмотрите: http://localhost: 5000 / weatherforecast отлично работает.

Теперь я пытаюсь использовать Nginx в качестве обратного прокси и работаю в другом контейнере, а вот nginx conf и файлы контейнера,

nginx .conf

worker_processes 1;

events { worker_connections 1024; }

http {

sendfile on;

upstream web-api {
    server api:5000;
}

server {
    listen 80;
    server_name $hostname;
    location / {
        proxy_pass         http://web-api;
        proxy_redirect     off;
        proxy_http_version 1.1;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        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;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
  }
}

Nginx .Dockerfile

FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf

и вот мой docker файл создания,

docker -compose.yml

version: "3.7"

services:

reverseproxy:
build:
  context: ./Nginx
  dockerfile: Nginx.Dockerfile
ports:
  - "80:80"
restart: always

api:
depends_on:
  - reverseproxy
build:
  context: ./HelloAspNetCore3.Api
  dockerfile: Api.Dockerfile
expose:
  - "5000"
restart: always

Создание и запуск контейнеров в порядке docker-compose build и docker-compose up -d.

Но при попытке просмотреть http://localhost/weatherforecast он дает HTTP Error 404. The requested resource is not found. ошибка. Что здесь не так?

Примечание - когда я просматриваю с использованием IP-адреса хоста http://192.168.0.103/weatherforcast, он работает нормально.

Docker-Compose ps вывод здесь ....

введите описание изображения здесь

...