【发布时间】:2018-07-21 22:12:33
【问题描述】:
将我的 webapi dotnet 核心项目部署到 Ubuntu 服务器 通过 nginx 配置红隼和代理
我在文件Program.cs中的代码
public class Program {
public static void Main(string[] args) {
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://localhost:5050")
.UseStartup<Startup>()
.Build();
host.Run();
}
}
在/etc/nginx/sites-available/default 中创建文件并创建符号链接到/etc/nginx/sites-enable/default
server {
listen 80;
location / {
proxy_pass http://localhost:5050;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}
}
我在 /etc/systemd/system/kestrel-project.service 中的文件
[Unit]
Description=WebApi .NET Core running on Ubuntu
[Service]
WorkingDirectory=/var/aspnetcore/project
ExecStart=/usr/bin/dotnet /var/aspnetcore/project/project.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-project
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
为了部署使用这个脚本,它一直有效到今天
dotnet restore
dotnet build
dotnet publish
cp -r /root/src/project/bin/Debug/netcoreapp2.0/publish/* /var/aspnetcore/project/
cp /root/src/project/bin/Debug/netcoreapp2.0/project.dll /var/aspnetcore/project/
service nginx restart
systemctl daemon-reload
systemctl stop kestrel-project.service
systemctl enable kestrel-project.service
systemctl start kestrel-project.service
systemctl status kestrel-project.service
现在,当我在 pc 上的本地主机上启动我的 webapi 时 - webapi 运行良好并响应我的请求,但从服务器我收到 HTTP 错误 500 并且在 /var/log/nginx/error.log 我看到了这个
2018/02/11 19:58:04 [alert] 10584#10584: aborting
2018/02/11 20:01:15 [error] 11717#11717: *1 connect() failed (111:Connection refused) while connecting to upstream, client: *.*.*.*, server: , request: "GET /list HTTP/1.1", upstream: "http://127.0.1.1:5050/list", host: "*.*.*.*.*"
请帮助我理解这个问题并解决它
webapi 很久没改了,但是几天前我开始出现这些错误
【问题讨论】:
-
你解决了这个问题吗?
-
@JasonThuli 我找到了另一种解决方法,我已将项目添加到 docker 容器并进行了一些更改。我可以回答我自己的问题并解释详细信息 - 如果您愿意?
标签: c# ubuntu nginx .net-core kestrel