我正在尝试设置 ubuntu 18.04 droplet 来运行 .Net Core 3.1 Web 应用程序。我正在关注这教程。
到目前为止,如果我在浏览器中输入 droplet IP,nginx 就可以正常工作(或者至少我可以看到 nginx 欢迎页面)。我已经创建了 /var/www/html/example.com 文件夹,其中包含我的 .Net Core 应用程序,并且它可以正常工作。我已更改我的 dns 缓存(在本地计算机上),以将 example.com 重定向到我的 droplet IP。
但是当我在浏览器中输入 example.com 时,我被重定向到 example.com:5001,并出现 ERR_CONNECTION_REFUSED
nginx access.log 得到以下信息:
186.XXX.X.XX - - [03/May/2020:03:07:52 +0000] "GET / HTTP/1.1" 307 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/81.0.4044.129 Safari/537.36"
这是我的 nginx 配置 /etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_pass http://localhost:5001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
我对云系统和服务器设置还不太熟悉,所以有点迷茫。我只想让服务器运行起来,这样我就可以上传一些代码并练习 .Net Core 编码。所以任何帮助都很好!
谢谢你的建议!
答案1
我明白我遗漏了什么。我在运行应用程序时没有在 program.cs 中指定端口号
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>().UseUrls(new[] { "http://0.0.0.0:5001" }); // now the Kestrel server will listen on port 5001!
});