【问题标题】:NixOps - Configure Nginx proxy pass with Python FlaskNixOps - 使用 Python Flask 配置 Nginx 代理通行证
【发布时间】:2017-11-22 01:15:48
【问题描述】:

我是 Nix 的新手,并试图实现一个通过 Nginx proxy_pass 传递 Python Flask Web 服务的服务。这是我迄今为止尝试过的。

with import <nixpkgs> {};


    let
        buildInputs = [
            nginx
            python35Packages.python
            python35Packages.flask
            python35Packages.pyyaml
        ];

        installPhase = ''
            mkdir -p $out/pynix
            cp -rv src config.yml $out/pynix
            cd $out/pynix && nohup python src/main.py &> log.txt
        '';


    in {
        network.description = "Local machine";

        webserver = {
            deployment = {
                targetEnv = "virtualbox";
                virtualbox.memorySize = 1024;
            };

            services = {
                nginx = {
                    enable = true;
                    config = '';
                        http {
                            include         ${nginx}/conf/mime.types;
                            server_name     localhost;

                            location / {
                                proxy_pass http://localhost:5000;
                            }
                        }
                    '';
                };
            };
        };
    }

src/main.py 是一个运行在 5000 端口的 Python Flask 服务。当我使用nixops deploy -d DEPLOYMENT_NAME 时,如何才能启动并运行这个 Web 服务?请帮忙。

【问题讨论】:

    标签: python nix nixos nixops


    【解决方案1】:

    我认为您混淆了包和服务。包是构建的静态输出,而服务管理包的运行时激活。我认为您的配置当前试图描述一个在构建时运行的 python 应用程序,而没有任何服务在运行时激活它。这几乎与您想要的相反!尤其是与 nixops 一样,您可能会在与构建服务的环境不同的环境中运行您的服务。
    通过查看 nginx package 和 nginx service 的 nix 表达式,您应该能够了解我的意思 - 特别是services.systemd.nginx 部分。从这里你可以看到 nginx service 管理着 nginx package 的运行。我想你会想为你的 python 应用程序编写类似的表达式。您还可以查看是否有专门针对基于 python 的 NixOS 服务的表达式可以用作基础,但 nginx 表达式也应该是一个足够的指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2019-07-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2016-05-23
      相关资源
      最近更新 更多