![](/img/trans.png)
[英]Configure NGINX with Asp.Net Core Application Reverse Proxy as SubFolder like IIS
[英]Request hangs for nginx reverse proxy to an ASP.NET 5 web application on docker
我試圖讓nginx,ASP.NET 5,Docker和Docker Compose在我的開發環境中一起工作,但到目前為止我看不到它的工作原理。 這是我現在的狀態,讓我在這里簡要解釋一下。
我有以下docker-compose.yml文件:
webapp:
build: .
dockerfile: docker-webapp.dockerfile
container_name: hasample_webapp
ports:
- "5090:5090"
nginx:
build: .
dockerfile: docker-nginx.dockerfile
container_name: hasample_nginx
ports:
- "5000:80"
links:
- webapp:webapp
docker-nginx.dockerfile
文件:
FROM nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
和docker-webapp.dockerfile
文件:
FROM microsoft/aspnet:1.0.0-rc1-update1
COPY ./WebApp/project.json /app/WebApp/
COPY ./NuGet.Config /app/
COPY ./global.json /app/
WORKDIR /app/WebApp
RUN ["dnu", "restore"]
ADD ./WebApp /app/WebApp/
EXPOSE 5090
ENTRYPOINT ["dnx", "run"]
nginx.conf
文件:
worker_processes 4;
events { worker_connections 1024; }
http {
upstream web-app {
server webapp:5090;
}
server {
listen 80;
location / {
proxy_pass http://web-app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
一切都很好,當我運行docker-compose up
,它會啟動並運行兩個容器,這也很不錯。 從主機,當我點擊localhost:5000
,請求只是掛起,當我終止請求時,nginx通過docker compose寫出一個日志,指示499
HTTP響應。
知道我在這里可能缺少什么嗎?
我在ASP.NET 5應用程序中添加了一些日志記錄,當我點擊localhost:5000時,我可以驗證請求是否正在發送到ASP.NET 5,但它
會立即終止,
從200響應中判斷出健康的響應。 然后,nginx坐在它上面我通過客戶端終止請求。
這是Kestrel RC1中的已知錯誤: https : //github.com/aspnet/KestrelHttpServer/issues/341
你可以通過強制Connection: keep-alive
來解決它Connection: keep-alive
:
proxy_set_header Connection keep-alive;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.