我有一个asp.net核心项目。它只是一个单页网站。我在Linux上将此网站部署为守护进程。我使用Nginx代理服务器+ Kestrel。
当我尝试通过http://@MyIPadress@:5000连接时 - 一切都没问题。但是,当我尝试从计算机连接时,没有与服务器的本地连接 - 我捕获错误连接超时。
packets transmitted 9
received 0
packet loss 100 %
time 8162 ms
命令:sudo ufw status
80 ALLOW Anywhere
443 ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
此外,端口80和443在我的本地IP上转发。
server {
listen 80;
server_name promzona.ddns.net;
proxy_send_timeout 1000;
proxy_read_timeout 1000;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Connection $http_connection;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseContentRoot("/home/promzona/All Works/ASP CORE Tutorial")
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.RequestHeadersTimeout = new TimeSpan(0, 5, 0);
options.Limits.KeepAliveTimeout = new TimeSpan(0, 10, 0);
})
.Build();
}
public void Configure(IApplicationBuilder app)
{
Console.WriteLine("NEW CONNECTION");
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider("/home/promzona/All Works/ASP CORE Tutorial")
});
app.UseMiddleware<CounterMiddleware>();
app.Run(async (context) =>
{
await context.Response.WriteAsync(System.IO.Directory.GetCurrentDirectory());
});
}
。
CounterMiddleware
是我的中间件,它计算按下按钮的次数和返回的点击次数。
Nginx日志仅显示成功连接,来自我的计算机的连接。我的服务器日志也没有显示失败的连接。
命令:sudo tcpdump -i enp3s0 host (my_local_ip) and port 80
在这种情况下,我看到我尝试连接时,但是当我尝试从另一台计算机连接时 - 连接超时
命令:sudo tcpdump -i enp3s0 dst (my_IP) and port 80
类似情况。
为什么外部与我服务器的连接失败,以及如何修复它?