首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NixOps -使用Python配置Nginx

NixOps -使用Python配置Nginx
EN

Stack Overflow用户
提问于 2017-06-19 17:58:16
回答 1查看 652关注 0票数 1

我是Nix的新手,我试图实现一个通过Nginx proxy_pass传递Python服务的服务。到目前为止,这就是我所尝试的。

代码语言:javascript
复制
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服务。当我执行nixops deploy -d DEPLOYMENT_NAME时,如何实现这个web服务的启动和运行?请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 11:25:17

我想你把包裹和服务搞混了。包是构建的静态输出,而服务则管理包的运行时激活。我认为您的配置目前试图描述一个在构建时运行的python应用程序,而没有任何服务在运行时激活它。这和你想要的正好相反!特别是与nixops一样,您可能在与构建服务的环境不同的环境中运行服务。

通过查看nginx 套餐和nginx 服务的nix表达式,特别是services.systemd.nginx部分,您应该能够理解我的意思。从这里可以看到,nginx服务管理nginx包的运行。我认为您会希望为您的python应用程序编写类似的表达式。您还可以看到是否有专门用于基于python的NixOS服务的表达式,您可以使用这些表达式作为基础,但是nginx表达式也应该是足够的指南。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44637047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档