【问题标题】:How do I setup files to run multiple flask (nginx, gunicorn) applications on one server? (specify separate ports)如何设置文件以在一台服务器上运行多个烧瓶(nginx、gunicorn)应用程序? (指定单独的端口)
【发布时间】:2021-06-01 07:55:37
【问题描述】:

让每个应用程序自行运行后,您需要在应用程序、nginx 和 gunicorn/service 文件中指定端口。我正在使用 AWS 和 Centos 8 操作系统。

【问题讨论】:

    标签: nginx flask gunicorn centos8


    【解决方案1】:

    下面将显示运行这两个应用程序所需的文件集。在每组文件中,我将有一个文件将在端口 80 上运行,因此无需指定端口,当您想在端口 5000 中运行应用程序时,这会派上用场。第二个文件(App2在每组中)将用于将在端口 3000 上运行的应用程序。端口 3000 是我选择的替代端口,只是因为我看到其他人这样做并且它有效。

    VM 上的文件夹结构:

    文件设置: /home/ec2-user/environments/App1directory/run.py

    from App1 import create_app
    
    app = create_app()
    
    if __name__ == '__main__':
        app.run(debug=False,host="0.0.0.0")
    

    /home/ec2-user/environments/App2directory/run.py

    from App2 import create_app
    
    app = create_app()
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0",port=3000)
    

    App1Domain.com.conf

    server {
        server_name www.App1domain.com App1domain.com;
        root /home/ec2-user/environments/App1;
    
        location /static {
        alias /home/ec2-user/environments/App1/App1/static;
        }
    
        location/{
            proxy_pass http://localhost:8000;
            include /etc/nginx/proxy_params;
            proxy_redirect off;
        }
    }
    server {
        listen 80;
        listen [::]:80;
        server_name www.App1domain.com App1domain.com;
        root /home/ec2-user/environments/App1;
    }
    

    App2Domain.com.conf

    server {
        server_name www.App2domain.com App2domain.com;
        root /home/ec2-user/environments/App2;
    
        location /static {
        alias /home/ec2-user/environments/App2/App2/static;
        }
    
        location / {
            proxy_pass http://localhost:3000;
            include /etc/nginx/proxy_params;
            proxy_redirect off;
        }
    }
    server {
        listen 80;
        listen [::]:80;
        server_name www.App2domain.com App2domain.com;
        root /home/ec2-user/environments/App2;
    }
    

    App1.service

    [Unit]
    Description=Gunicorn instance to serve App1 from App1 conda environment
    After=network.target
    
    [Service]
    User=ec2-user
    WorkingDirectory=/home/ec2-user/environments/App1
    Environment="PATH=/home/ec2-user/miniconda3/envs/[App1envName]/bin"
    ExecStart=/home/ec2-user/miniconda3/envs/[App1envName]/bin/gunicorn -w 3 run:app
    
    [Install]
    WantedBy=multi-user.target
    

    App2.service

    [Unit]
    Description=Gunicorn instance to serve App2 from App2 conda environment
    After=network.target
    
    [Service]
    User=ec2-user
    WorkingDirectory=/home/ec2-user/environments/App2
    Environment="PATH=/home/ec2-user/miniconda3/envs/[App2envName]/bin"
    ExecStart=/home/ec2-user/miniconda3/envs/[App2envName]/bin/File setup:
    /home/ec2-user/environments/App1directory/run.py
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2016-04-01
      • 2019-10-05
      • 2018-07-06
      • 1970-01-01
      相关资源
      最近更新 更多