我將一個ASP.NET Core Web API應用程序作爲Docker映像部署到AWS ECS,因此請爲此使用任務定義文件。適用於AWS ECS的ASP.NET內核需要VIRTUAL_HOST
事實證明,如果我和我的EC2實例的公共DNS指定的環境變量VIRTUAL_HOST
(如突出的位置:http://docs.servicestack.net/deploy-netcore-docker-aws-ecs)應用程序才能正常運行,請參閱下面taskdef.json
:
{ "family": "...", "networkMode": "bridge", "containerDefinitions": [ { "image": "...", "name": "...", "cpu": 128, "memory": 256, "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 0, "protocol": "http" } ], "environment": [ { "name": "VIRTUAL_HOST", "value": "ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com" } ] } ] }
一旦應用程序是部署到AWS ECS,我打的終點 - 如http://ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com/v1/ping
- 我的EC2實例的實際公共DNS在
VIRTUAL_HOST
一切工作正常 - 沒有環境變量,我從nginx的/ 1.13.0
- 得到「503服務暫時無法使用」,如果我把一個空字符串
VIRTUAL_HOST
我從nginx的/ 1.13收到「502網關錯誤」。 0。
現在,我想避免在taskdef文件中指定虛擬主機 - 這可能嗎?我的問題是ASP.NET Core相關還是nginx相關?
您可能也可以在ECS Web界面中使用參數存儲。 –
謝謝 - 我現在不太在意安全性,只是想避免在taskdef中指定更多的基礎結構細節 - 是否可以根本避免使用'VIRTUAL_HOST'?我更新了更具體的問題 – andreister
嗯,我不能真正幫助你,因爲這涉及到ASP.NET(而不是NGinx)。 –