Я пытаюсь опубликовать веб-приложение aspnet core 2.1 по умолчанию в ECS в подкаталоге. Если я установлю путь слушателя ELB в * для пересылки всего трафика, он работает Однако мне нужно опубликовать это в "виртуальном каталоге" "
http://[url]/dms/
запуск его в корне работает нормально, но кажется, что Kestrel не отображает подкаталог в мое приложение.
Я попытался настроить переменную ENV ASPNETCORE_URLS на http://*/dms:80, и она не работает. Я продолжаю получать 404
Я также пробовал .UseUrls ("http://*/dms:80"), который не работает. Он выбрасывает 503 Сервис временно недоступен
Моя политика CF выглядит следующим образом [Я должен был включить 404 в качестве хорошего кода, в противном случае проверки работоспособности продолжат проваливаться]
DocMgrTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
HealthCheckIntervalSeconds: 120
HealthCheckPath: /dms/
HealthCheckProtocol: HTTP
HealthCheckTimeoutSeconds: 60
HealthyThresholdCount: 2
Name: !Sub eds-${Environment}-docmgr-tg
Port: 80
Protocol: HTTP
TargetType: instance
UnhealthyThresholdCount: 8
Matcher:
HttpCode: 200-499
VpcId:
Fn::ImportValue: !Sub 'eds-${Environment}-ecs-cluster-vpc'
# Create a rule on the load balancer for routing traffic to the target group
LoadBalancerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- TargetGroupArn: !Ref 'DocMgrTargetGroup'
Type: 'forward'
Conditions:
- Field: path-pattern
Values:
- "/dms*"
ListenerArn:
Fn::ImportValue: !Sub 'eds-${Environment}-ecs-cluster-listener'
Priority: !Ref 'Priority
и мой файл Docker выглядит так
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["Example.WebApp/Example.WebApp.csproj", "Example.WebApp/"]
RUN dotnet restore "Example.WebApp/Example.WebApp.csproj"
COPY . .
WORKDIR "/src/Example.WebApp"
RUN dotnet build "Example.WebApp.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "Example.WebApp.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
# I have also tried URL to be http://*/dms:80
ENV ASPNETCORE_URLS http://*:80
ENTRYPOINT ["dotnet", "Example.WebApp.dll"]
Мне бы очень хотелось, чтобы переменная окружения работала. Любая помощь приветствуется.