nginx连接在从上游

时间:2016-11-17 21:06:54

标签: nginx flask uwsgi

我在烧瓶应用中使用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网关超时和日志显示从上游读取响应头时连接超时)。

3 个答案:

答案 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配置无关。我的电子邮件主机已更改,并且在调用发送电子邮件代码时代码抛出错误。