Nextcloud com NGINX: requisitos, instalação e configuração
A execução do Nextcloud num servidor NGINX permite uma utilização eficiente dos recursos do software na nuvem e oferece opções de implementação flexíveis. A instalação requer tanto um ambiente de sistema compatível como uma configuração adequada. Além disso, para integrar o Nextcloud sem problemas no ambiente NGINX, é necessário efetuar alguns ajustes específicos.
Nextcloud e NGINX: uma combinação poderosa para a sua nuvem
O NGINX é um software de servidor web baseado no princípio do código aberto, que também pode ser utilizado como proxy reverso, balanceador de carga e cache HTTP. A aplicação foi desenvolvida em grande parte pelo programador russo Igor Sysoev e foi publicada sob a licença BSD (uma variante do Unix).
O NGINX foi concebido para gerir um grande número de ligações em simultâneo. Para tal, utiliza uma arquitetura orientada para eventos e não bloqueante. Ao contrário dos servidores web tradicionais, que criam threads ou processos para cada ligação, o NGINX utiliza um processo mestre (master process) e vários processos de trabalho (worker processes). O processo mestre é responsável pela gestão da configuração, enquanto os processos de trabalho gerem os pedidos recebidos dos clientes.
A combinação do Nextcloud com o NGINX oferece várias vantagens que são especialmente relevantes para ambientes de servidor com elevadas exigências de desempenho. Entre os benefícios mais notáveis, destacam-se os seguintes:
- Utilização eficiente dos recursos: o NGINX é capaz de gerir inúmeras ligações simultâneas de forma altamente otimizada.
- Elevada escalabilidade: permite distribuir a carga de forma flexível e pode ser facilmente ampliado através da adição de servidores adicionais.
- Opções de personalização: graças à sua estrutura modular, o NGINX pode ser adaptado a uma variedade de casos de utilização.
- Desempenho estável sob carga: mesmo com elevada procura do servidor, o NGINX continua a funcionar de forma fiável e a estar constantemente disponível.
O Nextcloud é oficialmente compatível apenas com o Apache 2.x como servidor web e não oferece suporte oficial ao NGINX. Por isso, a utilização do Nextcloud com o NGINX é recomendada sobretudo para utilizadores com experiência na configuração de servidores web.
Quais são os requisitos necessários para instalar o Nextcloud com o NGINX?
Para instalar o Nextcloud com o NGINX, o essencial é ter um servidor com Ubuntu, Debian ou outro sistema compatível já instalado. O seu servidor deve ter, no mínimo, 4 GB de RAM e 2 núcleos de CPU. Se pretender utilizar muitas aplicações do Nextcloud ou ter muitos utilizadores, recomendo um sistema com mais núcleos de CPU e mais memória RAM. Além disso, certifique-se de que dispõe de espaço de armazenamento suficiente para os seus dados e cópias de segurança.
Para a instalação, também é necessário um banco de dados compatível, como o MySQL ou o MariaDB, bem como a linguagem de script PHP (versão 8.1, no mínimo; recomenda-se a versão 8.3). No banco de dados são armazenados tanto os utilizadores como os plugins, os seus dados e os metadados dos ficheiros. O PHP é essencial para o processamento e a execução das funções do Nextcloud. Além disso, para poder instalar o Nextcloud, é necessária uma conta com permissões de administrador.
Nextcloud com o NGINX como servidor web: instalação e configuração
Antes de instalar o Nextcloud, já realizámos as tarefas preliminares essenciais. Neste guia, partimos de um servidor Ubuntu no qual o sistema operativo já foi instalado, juntamente com todas as dependências necessárias. Mais concretamente, trata-se do NGINX como servidor web, do MySQL como base de dados e do PHP na versão 8.3 com todas as extensões necessárias.
Também instalámos o Certbot para podermos instalar facilmente um certificado SSL com o Let’s Encrypt. Além disso, partimos do princípio de que dispõe de um domínio próprio, para poder aceder ao Nextcloud através de um URL personalizado em vez de um endereço IP.
Noutros artigos, mostramos-lhe como instalar o Nextcloud no Ubuntu 22.04 ou como configurar o Nextcloud no Kubernetes. Além disso, temos um guia detalhado para instalar e configurar o Nextcloud no Debian 12.
Descarregue o Nextcloud e descompacte-o
Primeiro, aceda ao diretório do utilizador no seu servidor e crie uma pasta chamada «nextcloud». É aqui que irá descarregar os ficheiros de instalação do Nextcloud. Pode fazê-lo manualmente a partir do changelog do Nextcloud, mas é mais fácil se utilizar o seguinte comando curl:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashSe preferires instalar outra versão, certifica-te de que utilizas o URL correto do ficheiro ZIP no comando de download.
Descompacte o ficheiro, mova a pasta para ./var/www (que funciona como diretório raiz) e defina os direitos de acesso dos ficheiros. Para tal, utilize estes comandos:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashConfigurar a base de dados
Para configurar a base de dados MySQL, execute o comando sudo mysql_secure_installation. Digite «y» para definir a sua palavra-passe de root (VALIDATE PASSWORD) e selecione «2» para uma palavra-passe segura (STRONG), que poderá configurar a seguir. Prima «y» para confirmar a palavra-passe e novamente «y» para eliminar utilizadores anónimos, proibir acessos remotos, eliminar a base de dados de teste e recarregar as tabelas de privilégios.
Em seguida, deve fazer o seguinte:
- Inicie sessão como utilizador root na base de dados com o comando
sudo mysql -u root -p. - Crie a base de dados do Nextcloud com o comando
create database nextcloud;. - Crie a conta de utilizador do Nextcloud através do comando
create user 'nextcloud'@'localhost' identified by <new_password>;. - Conceda todas as permissões da base de dados ao utilizador com o comando
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Em seguida, atualize as permissões com
flush privileges;e saia da consola da base de dados com o comandoexit.
Depois de a base de dados ter sido criada com sucesso, introduza os dados de acesso (DB_NAME, DB_USER, DB_PASSWORD) no ficheiro de configuração do Nextcloud. Para tal, abra o ficheiro ./var/www/nextcloud/config/config.php e adicione as seguintes entradas relevantes:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtDesativar a configuração padrão do NGINX
Antes de integrar o Nextcloud no NGINX, certifique-se de que não existe nenhum ficheiro de configuração que possa interferir com a instalação. Por predefinição, é possível que ainda exista um ficheiro de configuração chamado default em ./etc/nginx/sites-enabled/, que poderá impedir que o Nextcloud seja carregado corretamente. Este ficheiro deve ser eliminado utilizando o seguinte comando:
sudo rm /etc/nginx/sites-enabled/defaultbashCom o seguinte comando, garante que a nova configuração do Nextcloud está ativa:
sudo ln -s /etc/nginx/sites-available/ejemplodominio.es /etc/nginx/sites-enabled/bashConfigurar o servidor NGINX
Para configurar o NGINX como servidor web, é necessário que já tenha um domínio configurado e associado ao endereço IP do servidor. Certifique-se também de que a configuração DNS está correta. Crie o ficheiro de configuração do NGINX no diretório sites-available utilizando o comando Linux sudo sudo touch /etc/nginx/sites-available/ejemplodominio.es (utilizámos a URL ejemplodominio.es).
Abra o ficheiro de configuração num editor de texto como o Vim com sudo vim /etc/nginx/sites-available/ejemplodominio.es e copie o bloco de código da secção «Nextcloud in a subdir of the NGINX webroots» da página oficial do Nextcloud para configurar o NGINX e cole-o na configuração com o comando ./etc/nginx/sites-available/ejemplodominio.es.
Como o certificado HTTPS será adicionado com o Certbot, também deve eliminar todas as linhas relacionadas com o SSL do ficheiro de configuração do NGINX. O Certbot encarregar-se-á de realizar automaticamente a configuração, pelo que não é necessário configurá-la manualmente.
Configurar o certificado SSL com o Certbot
Para que o Nextcloud funcione através de uma ligação HTTPS segura, é necessário configurar um certificado SSL (neste caso, da Let’s Encrypt). Primeiro, é preciso configurar o firewall para permitir ligações HTTPS e SSH. Utilize o seguinte comando com o sudo:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashEm seguida, utilize sudo ufw enable para ativar o firewall e verifique se as ligações são permitidas com o sudo ufw status. Depois disso, já pode gerar o certificado SSL com o Certbot:
sudo certbot --nginx -d ejemplodominio.esbashIntroduza o seu endereço de e-mail para a renovação dos certificados, aceite os termos de utilização e selecione a opção 2 para redirecionar automaticamente todo o tráfego HTTP para HTTPS. Os ficheiros do certificado são guardados no diretório .etc/letsencrypt/live/ejemplodominio.es/. O ficheiro fullchain.pem contém o certificado SSL, enquanto o ficheiro privkey.pem contém a chave privada. Ambos devem ser adicionados ao ficheiro de configuração do NGINX:
ssl_certificate /etc/letsencrypt/live/ejemplodominio.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ejemplodominio.es/privkey.pem;txtUma vez que o Certbot alterou o ficheiro de configuração, é necessário voltar a adicionar o atributo ssl entre 443 e http2. O bloco correspondente deverá ficar assim:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ejemplodominio.es;txtReiniciar os serviços e aceder ao Nextcloud
Para que as alterações tenham efeito, é necessário reiniciar os serviços PHP-FPM e NGINX executando este comando:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashEm seguida, abra o seu navegador e aceda ao seu domínio (no nosso caso, exemplodominio.es). Se tudo estiver configurado corretamente, irá ver a página inicial do Nextcloud.