localhostに対してのみnixosでnginxを有効にする方法は?

localhostに対してのみnixosでnginxを有効にする方法は?

私は頻繁に使用するさまざまな内部アプリケーションをスケジュールするためにローカルコンピュータでnginxを実行しています。 nginxを使用すると、自分のアプリケーションに簡単なローカルエイリアスを簡単に提供できます。

問題は、このアプリケーションが非常に機密性の高い情報を提供することです。いいえnginxが私のパブリックインターフェイスの1つを受け取るようにしてください。

私の構成ブロックは/etc/nixos/configuration.nix次のとおりです。

  networking.firewall = {
    enable = true;
    # allowedTCPPorts = [ 8081 ];
  };

  services.nginx = {
    enable = true;
    recommendedProxySettings = true;
    recommendedTlsSettings = true;
    virtualHosts."localhost" = {
      locations."/wiki".proxyPass = "http://localhost:8000";
      locations."/weblog".proxyPass = "http://localhost:3001";
    };
  };

その場合、問題はポート80をどのようにファイアウォールに設定できるかということです。

ベストアンサー1

現在、ngixリスニングポートを設定するNixOS設定オプションはありません。ただし、ngix構成の一部をそのまま追加できます。構成.nixこのappendHttpConfigオプションを使用してください。このような:

  services.nginx = {
    enable = true;
    recommendedProxySettings = true;
    recommendedTlsSettings = true;
    virtualHosts."localhost" = {
      locations."/wiki".proxyPass = "http://localhost:8000";
      locations."/weblog".proxyPass = "http://localhost:3001";
    };

    appendHttpConfig = "listen 127.0.0.1:80";
  };

おすすめ記事