#Nginx
Se você usou o Nginx para gerenciar o site no servidor ou precisa lidar com certificados, caches e controle de acesso posteriormente, nb proxy nginx é o caminho padrão recomendado.
Se você deseja apenas configurar o HTTPS o mais rápido possível e não deseja manter muitos detalhes do proxy, então Caddy ficará mais tranquilo. Mas contanto que você esteja usando o Nginx, este documento será o caminho padrão.
Quando é mais adequado usar o Nginx?
De modo geral, as seguintes situações dão prioridade à continuação do uso do Nginx:
- Você usou o Nginx para gerenciar vários sites no servidor.
- Você mesmo precisará manter certificados, caches, controles de acesso ou mais regras personalizadas posteriormente
- Você deseja que a camada de entrada continue a usar o método existente de operação e manutenção do Nginx
Se o seu objetivo é apenas passar o HTTPS o mais rápido possível e você não deseja manter muitos detalhes do TLS, então Caddy ficará mais livre de preocupações.
Primeiro siga estes três comandos.
Se você deseja apenas executar primeiro a camada de entrada Nginx, basta lembrar estes três comandos por padrão:
Se o Nginx tiver sido instalado localmente, basta alterar a primeira entrada para nb proxy nginx use local.
Na maioria dos cenários, é suficiente executar use primeiro, depois generate e finalmente reload. Para obter outros detalhes e mais comandos, consulte os capítulos a seguir ou a referência da CLI.
Etapa 1: primeiro selecione como executar o Nginx você mesmo
Se o Nginx já estiver instalado na máquina atual, basta usar use local.
Se você quiser usar a versão Docker do Nginx, use use docker.
O local / docker aqui se refere ao modo de execução do próprio Nginx.
Usando a versão Docker do Nginx:
Usando um Nginx instalado localmente:
Se você esquecer qual método está selecionado no momento, poderá executar:
Etapa 2: Execute generate
generate é usado para gerar a configuração de entrada Nginx de acordo com o ambiente especificado. A maneira mais comum de escrever é:
Se você também quiser especificar a porta de entrada, também poderá escrevê-la junto:
O significado dos parâmetros aqui é:
--env: Especifique para qual ambiente CLI gerar configuração--host: Especifique o nome de domínio para acesso externo--port: Especifica a porta de entrada do proxy, não aappPortda própria aplicação NocoBase
A porta upstream do aplicativo vem do appPort salvo deste ambiente. Se o comando solicitar que env está faltando appPort, execute:
Se posteriormente você alterar configurações como app-port e app-public-path que afetarão os resultados do proxy, lembre-se de executar novamente generate.
Etapa 3: Execute reload
Após gerar a configuração, execute diretamente:
Na maioria dos cenários, basta usar este comando diretamente. Se ainda não estiver em execução, a inicialização será processada primeiro internamente; se já estiver em execução, será recarregado de acordo com a configuração mais recente.
Quais arquivos a CLI manterá?
Tomando test2 como exemplo, os comandos relacionados ao Nginx geralmente mantêm estes arquivos e diretórios:
em:
NB_CLI_ROOT/.nocobase/proxy/nginx/...A seguir estão os arquivos auxiliares do agente mantidos pela CLINB_CLI_ROOT/test2/storage/...A seguir estão os recursos estáticos e diretórios de upload do próprio aplicativoapp.confpode ser alterado, mas o bloco gerenciado NocoBase deve ser mantidoindex-v1.htmleindex-v2.htmlreescreverão automaticamente os endereços de recursos de acordo com o subcaminho do ambiente atual, a versão do cliente ativo eCDN_BASE_URL
:::nota de aviso
Se você deseja adicionar configuração Nginx em nível de site, como limitação de corrente, cabeçalhos adicionais e controle de acesso, basta alterar app.conf. Os arquivos auxiliares gerenciados pela CLI são atualizados de forma síncrona nas reconstruções subsequentes.
:::
Configuração manuscrita: o que fazer sem CLI
Se o seu aplicativo não estiver hospedado na CLI ou se você desejar explicitamente manter a configuração completa do Nginx, também poderá escrevê-lo manualmente.
No entanto, para NocoBase, o proxy reverso de produção geralmente é mais do que um simples proxy_pass. Além de encaminhar solicitações de API para o aplicativo de back-end, uma configuração completa e utilizável geralmente precisa lidar com o diretório de upload, recursos estáticos de front-end, WebSocket, rota .well-known e página de fallback do SPA.
Tomando test2 como exemplo, os principais arquivos e diretórios relacionados ao Nginx geralmente incluem:
- Trechos Nginx:
NB_CLI_ROOT/.nocobase/proxy/nginx/snippets - Configuração de entrada editável:
NB_CLI_ROOT/.nocobase/proxy/nginx/test2/app.conf - Página substituta do SPA (v1):
NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v1.html - Página substituta do SPA (v2):
NB_CLI_ROOT/.nocobase/proxy/nginx/test2/public/index-v2.html - Diretório de produtos de criação de front-end:
NB_CLI_ROOT/test2/storage/dist-client - Diretório de upload:
NB_CLI_ROOT/test2/storage/uploads
Em outras palavras, a configuração manuscrita geralmente precisa cobrir pelo menos os seguintes tipos de entradas:
uploads: exponha o diretório de upload por meio dealiasdist: exponha o diretório do produto de compilação front-end por meio dealiaswell-known: Lidar com caminhos de descoberta relacionados a OAuth/OpenIDapi: encaminha a solicitação/api/para o aplicativo back-endws: encaminha solicitações WebSocket para o aplicativo backendspa: fornece entrada de front-end e substitutotry_filespara/e/v/
Portanto, uma configuração completa do Nginx geralmente não é apenas o seguinte método geral de gravação de proxy reverso:
Para um aplicativo hospedado em CLI como test2, uma estrutura mais próxima de uma implantação real normalmente seria assim:
Existem dois pontos principais aqui:
NB_CLI_ROOT/.nocobase/proxy/nginx/...A seguir estão os arquivos auxiliares do agente mantidos pela CLINB_CLI_ROOT/test2/storage/...O seguinte é usar seu próprio diretório de produtos e diretório de upload
Se o seu aplicativo usar implantação de subcaminho ou se os recursos front-end, o diretório de upload e o proxy reverso não estiverem na mesma perspectiva de caminho, a configuração manuscrita estará mais sujeita a erros. Neste cenário, normalmente é mais recomendado executar:
Em seguida, faça ajustes com base nos resultados gerados.
Uma abordagem mais prudente é geralmente:
- Primeiro deixe a CLI gerar a configuração Nginx
- Confirme a estrutura de roteamento e o caminho real com base nos resultados gerados.
- Em seguida, faça ajustes manuais de acordo com seu nome de domínio, modo de execução e caminho de montagem.
Geralmente, é menos provável que perca detalhes relacionados a WebSockets, recursos estáticos, diretórios de upload ou páginas substitutas de SPA do que escrever uma configuração à mão do zero.
Como lidar com HTTPS
Se você decidiu continuar usando o Nginx, o HTTPS também pode continuar a ser configurado no Nginx. Uma prática comum é expandir a entrada dupla listen 80 para 80/443 e, em seguida, adicionar o caminho do certificado e a configuração TLS.
No entanto, se você deseja apenas disponibilizar o HTTPS o mais rápido possível e não deseja lidar com a solicitação e renovação do certificado sozinho, será mais tranquilo usar o Caddy diretamente.
Instruções comuns
nb proxy nginx generateé para aplicativos instalados pornb init- Se você alterar posteriormente configurações como
app-porteapp-public-pathque afetarão os resultados do proxy, lembre-se de executar novamentegenerate

