gpt4 book ai didi

asp.net-mvc - "upstream prematurely closed connection while reading response header from upstream"在 Ubuntu MVC4 应用程序上使用 nginx、PostgreSQL 和 Mono

转载 作者:行者123 更新时间:2023-11-29 12:20:20 25 4
gpt4 key购买 nike

/编辑我做了the answer to the question mentioned above的建议授予对注册表的访问权限,如下所示:

sudo mkdir -p /usr/local/etc/mono/registry
sudo chmod uog+rw /usr/local/etc/mono/registry

这没有帮助,因为错误的网关问题只出现在使用上述命令访问注册表之后(在此之前我收到注册表错误)。

问题:我想使用 nginx 将在 Mono 运行时上运行的 MVC 4 应用程序部署到 Azure 的 Ubuntu 服务器。通过选择这样的 Ubuntu 服务器并运行安装程序脚本,我设法让默认的 Web 应用程序运行并在 oogstplanner.cloudapp.net 上可见。安装程序的工作方式如下:

wget https://bitbucket.org/mindbar/install-mono/raw/master/install-nginx- 
mono.sh && sudo chmod +x install-nginx-mono.sh && ./install-nginx-mono.sh

该脚本安装了 nginx 和 mono,并设置了 nginx.conf 和其他配置文件。

然后我所做的是删除此安装,安装 postgresql 并设置数据库,并将 $HOME/www/中的文件替换为我自己的 MVC 4 Web 应用程序,该应用程序通过将其复制到本地运行。然后在运行它时我看到一个

>502 Bad Gateway

错误。

日志文件/var/log/nginx/error.log 说(对于第一个和后续请求):

2015/04/03 14:24:36 [error] 1305#0: *6 upstream prematurely closed connection while reading response header from upstream, client: my.ip.207, server: localhost, request: "GET /Account/Login?ReturnUrl=%2f HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "oogstplanner.cloudapp.net"
2015/04/03 14:26:05 [error] 1305#0: *8 connect() failed (111: Connection refused) while connecting to upstream, client: my.ip.207, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "oogstplanner.cloudapp.net"
2015/04/03 14:29:24 [error] 1305#0: *10 connect() failed (111: Connection refused) while connecting to upstream, client: my.ip.58, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "oogstplanner.cloudapp.net"
(...)

所以它确实看到它需要转到/Account/Login?ReturnUrl!某些东西正在工作。

当我复制回默认应用程序时,它会再次运行。

配置:

/edit 我强烈怀疑它与 PostgreSQL 数据库有关。这是因为我刚刚重新启动了服务器,并看到这个 NullReferenceException 被 NauckIt.PostgreSQLProvider 抛出:

What I saw after a reboot

此错误总是在本地发生一次,然后在刷新应用程序后运行。但是在服务器上,该应用程序无法运行,但在没有让 PostgreSQL 提供程序抛出 NullReferenceException 之后,我得到了 502 错误。所以这就是为什么我认为错误的网关可能来自 PostgreSQL 连接。

/Edit2 情节变得更复杂了:当我查看数据库时,我看到(一些) session 正在 Sessions 表中创建。发生这种情况时我看不到任何逻辑并且无法创建新逻辑。但有时会从网络应用程序连接到数据库。

这是重启(14:25:23)并通过浏览器导航到网站(14:24:36)后的 PostgreSQL 日志:

2015-04-03 14:24:23 UTC LOG: database system is ready to accept connections
2015-04-03 14:24:23 UTC LOG: autovacuum launcher started
2015-04-03 14:24:23 UTC LOG: incomplete startup packet
2015-04-03 14:24:36 UTC LOG: could not receive data from client: Connection reset by peer

根据 reddit 用户的说法:

502 Bad Gateway is an HTTP status code and cannot be returned by postgres because postgres doesn't speak HTTP. Similarly, NullReferenceException is a Mono exception and isn't thrown by postgres, so that's not a postgres problem either. Your application is attempting to send some data to postgres but crashes before it can finish doing so. This is an application problem, not a postgres problem. Hope this helps.

有谁知道这里出了什么问题吗?

PS 我在 README 中的部署部分记录了我采取的所有步骤文件。

最佳答案

该问题可能是由于最初禁用了http 端口而只允许https 造成的。如果没有开启,尝试开启http端口,只允许通过127.0.0.1请求。除此之外,还要检查配置设置中的“超时”值。

关于asp.net-mvc - "upstream prematurely closed connection while reading response header from upstream"在 Ubuntu MVC4 应用程序上使用 nginx、PostgreSQL 和 Mono,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com