![](/img/trans.png)
[英]How to get System IP from a Dot net Core application running inside a Docker container
[英].net core 3.1 docker container extremely slow response
我们有几个 API 托管在 AWS Elastic beanstalk 中。 我们决定将所有这些应用程序组合到一个单独的 docker 容器下的单个 EC2 实例中,以隔离它们的环境。 设置后我遇到了性能问题。 响应时间非常慢(~58 秒)
我查看了 docker 统计数据,但 memory 没有占用资源,CPU 没有飙升,一切似乎都很正常。 这不是一个新的应用程序,我们已经使用这个应用程序一年多了。
让我分享我的 docker 文件内容和我构建它的方式以及我用来运行图像的命令。
EC2 实例: us-east-1 区域中的 t3a.small
Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
COPY release_dll/ /root/
WORKDIR /root/
ENV ASPNETCORE_URLS="http://*:80"
EXPOSE 80
ENTRYPOINT ["dotnet", "vizdom.webapi.dll"]
Docker 构建命令: sudo docker build -t ss-webapi.
Docker 运行命令: sudo docker run -e AS.NETCORE_ENVIRONMENT=Dev -itd -.network=ss-su.net --ip 172.18.0.3 ss-webapi
ss-su.net .network 使用桥接模式驱动程序。
在同一台机器上有 nginx 反向代理,它将请求路由到各个容器
例如:
location /webapi{
rewrite ^/webapi(.*) $1 break;
proxy_pass http://172.18.0.3:80;
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_redirect off;
proxy_buffering off;
}
我不知道可以做些什么来提高速度。 我怀疑它与.network 相关,但不确定。
该问题已被追踪。 我的 API 托管在 us-east-1 区域,而由于存在延迟,我试图访问 ap-southeast-1 区域中的数据。 我将移动单个区域中的所有资源,以减少成本和延迟问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.