我在烧瓶应用中使用nginx + uwsgi。在nginx设置中,服务器块具有server_name * .mydomain.com;和uwsgi的位置块就像
location /api/ {
include uwsgi_params;
uwsgi_pass unix:///var/uwsgi/app.sock;
.........
}
所以问题是我可以访问app.mydomain.com,但是当我尝试app1.mydomain.com时,uwsgi日志没有显示任何请求。 nginx错误日志显示
上游超时(110:连接超时),同时从上游读取响应头,客户端:122.166.94.231,服务器:* .mydomain.com,请求:“GET / api / client / generic / ping HTTP / 1.1” ,上游:“uwsgi:// unix:///var/uwsgi/app.sock”,主持人:“app1.mydomain.com
我有另一个测试设置,其中所有这些设置都相同且有效。有什么指针吗?当我重新启动uwsgi和nginx app1.mydomain.com工作时,直到我加载app.mydomain.com(初始加载app.mydomain.com失败,但如果我继续刷新它加载,那么app1.mydomain.com引发504网关超时和日志显示从上游读取响应头时连接超时)。
答案 0 :(得分:2)
我在single-interpreter = true
设置中添加uwsgi.ini
时有效。
新添加的python库导致了这个问题。
不知道这是否有助于他人。
答案 1 :(得分:0)
我也遇到了同样的问题。 uWSGI具有“ http”,“ http-socket”和“ socket”选项。将uWSGI放在像Nginx这样的完整Web服务器后面时,我们应该产生uWSGI来以本地方式讲uWSGI协议:
@Component({
selector: 'app-module-a-detail',
templateUrl: './module-a-detail.component.html'
})
export class ModuleADetailComponent {
constructor(
private activatedRoute: ActivatedRoute) {
const childRoutes: Routes = this.activatedRoute.routeConfig.children;
this.pluginService.getPlugins({
.subscribe(map(plugin => {
// build up my additional childRoute here
childRoutes.push(newChildRoute);
}))
);
}
}
uwsgi文档中的更多详细信息:https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#putting-behind-a-full-webserver
答案 2 :(得分:0)
查看uwsgi错误日志并了解问题所在对我有帮助。问题根本与Nginx配置无关。我的电子邮件主机已更改,并且在调用发送电子邮件代码时代码抛出错误。