> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Executando vários aplicativos em um host

## O problema

Ao executar vários aplicativos em um host, podem ocorrer comportamentos estranhos. Um problema comum que observamos é que os aplicativos começam a reportar sob nomes e/ou ambientes diferentes. Por exemplo, um aplicativo alternando entre o ambiente staging e production após um deploy ou reinicialização de um processo ou worker do aplicativo.

## Contexto

O agente do AppSignal inicia usando uma configuração de aplicativo. Ele usa essa configuração para enviar os dados aos servidores do AppSignal e reportá-los como aquele app no AppSignal.com.

Por padrão, o AppSignal é configurado supondo que um aplicativo é executado em um host. Se você executar mais de um aplicativo em um host, será necessária alguma configuração para evitar o compartilhamento do diretório de trabalho do AppSignal entre vários aplicativos. Dessa forma, vários agentes do AppSignal podem ser executados simultaneamente com configurações de aplicativo diferentes.

<Tip>
  Leia mais sobre o [working
  directory](/appsignal/how-appsignal-operates#working-directory) do AppSignal.
</Tip>

## Configuração

Para permitir que o AppSignal seja usado para vários aplicativos em um host, precisamos definir a opção de configuração "caminho do diretório de trabalho". Usando essa opção de configuração, precisamos definir um caminho único de diretório de trabalho por aplicativo para o AppSignal armazenar seus arquivos (temporários). Dessa forma, o agente do AppSignal não compartilhará o diretório de trabalho entre vários aplicativos.

### Ruby

Para definir o caminho do diretório de trabalho na integração Ruby, adicione o seguinte ao arquivo de configuração do AppSignal. O valor de [`working_directory_path`][ruby working_directory_path] é um caminho para um diretório existente no sistema host.

<CodeGroup>
  ```ruby Ruby theme={null}
  Appsignal.configure do |config|
    config.working_directory_path = "/tmp/project_1/"
  end
  ```

  ```yaml YAML theme={null}
  production:
    working_directory_path: "/tmp/project_1/"
  ```
</CodeGroup>

#### Leia mais {/* id: ruby-read-more */}

* [Detalhes da opção de configuração `working_directory_path` da integração Ruby][ruby working_directory_path]

[ruby working_directory_path]: /ruby/configuration/options.html#option-working_directory_path

### Elixir

Para definir o caminho do diretório de trabalho na integração Elixir, adicione o seguinte ao arquivo de configuração do AppSignal. O valor de [`working_directory_path`][elixir working_directory_path] é um caminho para um diretório existente no sistema host.

<CodeGroup>
  ```elixir Elixir theme={null}
  config :appsignal, :config,
    working_directory_path: "/tmp/project_1/"
  ```
</CodeGroup>

#### Leia mais {/* id: elixir-read-more */}

* [Detalhes da opção de configuração `working_directory_path` da integração Elixir][elixir working_directory_path]

[elixir working_directory_path]: /elixir/configuration/options.html#option-working_directory_path

### Node.js

Para definir o caminho do diretório de trabalho na integração Node.js, adicione o seguinte ao arquivo de configuração do AppSignal. O valor de [`workingDirectoryPath`][nodejs working_directory_path] é um caminho para um diretório existente no sistema host.

<CodeGroup>
  ```javascript Node.js theme={null}
  const { Appsignal } = require("@appsignal/nodejs");

  const appsignal = new Appsignal({
    // Outras configurações
    workingDirectoryPath: "/tmp/project_1",
  });

  module.exports = { appsignal };
  ```
</CodeGroup>

#### Leia mais {/* id: nodejs-read-more */}

* [Detalhes da opção de configuração `workingDirectoryPath` da integração Node.js][nodejs working_directory_path]

[nodejs working_directory_path]: /nodejs/3.x/configuration/options.html#option-workingdirectorypath

### Python

Para a integração Python, duas opções de configuração precisam ser alteradas. A primeira é a opção de configuração `working_directory_path`, e a outra é a opção de configuração `opentelemetry_port`.

Para definir essas opções de configuração na integração Python, adicione o seguinte ao arquivo de configuração do AppSignal. O valor de [`opentelemetry_port`][python opentelemetry_port] é um número de porta disponível e o valor de [`working_directory_path`][python working_directory_path] é um caminho para um diretório existente no sistema host. Esses valores devem ser exclusivos por app.

<CodeGroup>
  ```python Python theme={null}
  from appsignal import Appsignal

  appsignal = Appsignal(
    # Outras configurações
    opentelemetry_port: 9001,
    working_directory_path: "/tmp/project_1"
  )
  ```
</CodeGroup>

#### Leia mais {/* id: python-read-more */}

* [Detalhes da opção de configuração `opentelemetry_port` da integração Python][python opentelemetry_port]
* [Detalhes da opção de configuração `working_directory_path` da integração Python][python working_directory_path]

[python opentelemetry_port]: /python/configuration/options.html#option-opentelemetry_port

[python working_directory_path]: /python/configuration/options.html#option-working_directory_path

### JavaScript de front-end

Nenhum diretório de trabalho pode ser configurado para aplicativos JavaScript de front-end, pois eles não dependem do processo do agente do AppSignal. Se os dados forem reportados para o aplicativo errado, certifique-se de que o aplicativo está usando a [Push API key](/appsignal/terminology#push-api-key) correta.

## Veja também

* [Tópico Application](/application/)
* [Índice de Guides](/guides/)
