#amazon-web-services #docker #nginx #docker-compose #amazon-elastic-beanstalk
Вопрос:
Мой интерфейс находится на порту 80 и доступен по электронной ссылке, предоставленной AWS. Что-то вроде того:
http://myapp-env.eba-xasnmn7n.sa-east-1.elasticbeanstalk.com/
Мой API находится на порту 9901, и я хотел бы предоставить его по этой же ссылке. Что-то вроде:
http://myapp-env.eba-xasnmn7n.sa-east-1.elasticbeanstalk.com/myapi
Как я могу это сделать?
Я получил доступ к экземпляру EC2 и протестировал контейнер и API с помощью curl, и он работает.
Файл настройки API
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "SITR.Web.Host.dll", "--environment=Staging"]
Файл докера интерфейса
FROM nginx
COPY . /usr/share/nginx/html
COPY default.conf /etc/nginx/conf.d
Это моя конфигурация nginx:
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/rss xml text/javascript image/svg xml application/vnd.ms-fontobject application/x-font-ttf font/opentype;
gzip_disable "MSIE [1-6].";
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html /index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Это мой файл docker-compose
version: '3.0'
services:
my_api:
image: "850977987151.dkr.ecr.sa-east-1.amazonaws.com/my-api:latest"
environment:
ASPNETCORE_ENVIRONMENT: Staging
ports:
- "9901:80"
volumes:
- "./Logs:/app/Data/Logs"
my_app:
image: "850977987151.dkr.ecr.sa-east-1.amazonaws.com/my-app:latest"
ports:
- "80:80"