通过 nginx 使用 kestrel 和代理将我的 webapi dotnet 核心项目部署到 Ubuntu 服务器配置
我在文件中的代码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 可以很好地工作很长时间但是几天前我开始出现这些错误