我有一个使用 NGINX + uWSGI + Flask 运行的网站。
该网站大部分时间都运行良好,但时不时地会进入一种状态,即 nginx 返回的页面仅显示“内部服务器错误”。如果我在执行此操作时查看 uWSGI 日志,则会看到以下内容:
[pid: 1580|app: -1|req: -1/37] 69.162.124.228 () {46 vars in 716 bytes} [Sat May 12 10:25:13 2018] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
--- no python application found, check your startup logs for errors ---
Run Code Online (Sandbox Code Playgroud)
它可以长时间处于这种状态,但如果我做了一些看似无关的事情,比如对烧瓶应用程序进行任意更改,那么一切都会重新开始工作。然后它将继续工作,直到一段时间后它再次开始给出“内部服务器错误”,而不会进行任何代码更改。
我试过直接运行 uWSGI 应用程序,它运行没有任何错误。
我已经尝试在我的 Flask 应用程序上安装 Sentry 以捕获任何错误,但发生这种情况时没有任何显示。
我该如何诊断?
我可以查看哪些其他日志文件?
这可能是什么原因造成的?
我已经在这里工作了一个多星期,并且通读了几乎所有与 SO 相关的问题。我已经没有想法了,如果我不知道发生了什么,我几乎要放弃这个项目。任何帮助将不胜感激。
这是我的文件:
uWSGI …
我有一个带有通配符子域的网站:*.mydomain 运行 nginx。我想根据子域将 proxy_pass 到另一台服务器上的不同端口。
例如:
abc.mydomain -> proxy_pass http://otherdomain:10001
foo.mydomain -> proxy_pass http://otherdomain:10002
等等。
要重定向到的端口在数据库中,我已经可以通过调用 url 来查找它:
curl http://mydomain/getport/abc -> 10001
curl http://mydomain/getport/foo -> 10002
我的网站上有数百个子域。如何在每次访问时进行这样的动态端口查找,以便与 nginx 中的 proxy_pass 一起使用?
我当前的单个子域的 nginx 配置是这样的:
server {
listen 80;
server_name abc.mydomain;
location / {
proxy_pass http://otherdomain:10001;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢