【问题标题】:uWSGI and nginx configuration for multiple flask apps running on different ports on the same serveruWSGI 和 nginx 配置,用于在同一服务器上的不同端口上运行的多个烧瓶应用程序
【发布时间】:2017-02-27 11:03:35
【问题描述】:

我有多个小型烧瓶应用程序。我想在同一台服务器(单个域)的不同端口上运行每个烧瓶应用程序。

例如说我有 3 个烧瓶应用程序

  1. tasks.py --> 仅具有 /task 的 API 端点
  2. users.py --> 仅具有 /user 的 API 端点
  3. analysis.py --> 仅具有 /analysis 的 API 端点

域名:api.test.com

我想在端口 8080 上运行 tasks.py,在端口 5000 上运行 users.py,在端口 4500 上运行 analysis.py。

我想配置我的 uWSGInginx 以便当我点击 api.test.com/task/xxxx 时我想要请求被定向到端口 8080(正在运行 tasks.py), 同样,api.test.com/user/xxxx 应该被定向到端口 5000api.test.com/analysis/xxxx >4500

【问题讨论】:

    标签: api nginx flask configuration uwsgi


    【解决方案1】:

    在我看来,你可以通过一个端口拥有一个单一的 uWSGI 实例,但如果你喜欢这种思维方式,那么你可以遵循下一种方式。

    假设,您已经有几个 uWSGI 实例在不同的端口上运行:8080、5000 和 4500。 然后你需要创建一个大致如下内容的 Nginx 配置(请阅读 cmets):

    # webserver configuration
    server {
    
        # port to be listened by the web-server
        listen      80;
    
        # domain name with its aliases or the ip
        server_name   api.test.com;
    
        # SETUP THREE LOCATION SECTIONS FOR EACH ACTION
    
        location /task {
            # AND SPECIFY THE NEEDED ADDRESS:PORT HERE
            uwsgi_pass  YOUR_SERVER_IP:8080;
    
            # ONE MAY ALSO USE UNIX-SOCKET (IF ON THE SAME SERVER), INSTEAD OF A PORT
            # uwsgi_pass unix:/path/to/the/socket.sock
    
            include     /etc/nginx/uwsgi_params; # stadard parms with environment variables required by a uwsgi app
        }
    
        location /user {
            uwsgi_pass  YOUR_SERVER_IP:5000;
            include     /etc/nginx/uwsgi_params;
        }
    
        location /analysis {
            uwsgi_pass  YOUR_SERVER_IP:4500;
            include     /etc/nginx/uwsgi_params;
        }
    }
    

    我希望你知道如何为每个端口运行三个 uWSGI 实例。

    在我看来,这非常难看,因为要添加任何新操作,您必须再次编辑 Nginx 配置。所以我不推荐这个解决方案,只建议这个答案作为 Nginx 与其他 Web 服务器连接的能力的演示。

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 2016-01-02
      • 2021-06-01
      相关资源
      最近更新 更多