Mudanças entre as edições de "Auto-hospedagem e ip público parte 3"
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 4: | Linha 4: | ||
===Zerotier=== | ===Zerotier=== | ||
− | Também é necessário instalar o zerotier na sua raspi, conforme descrito na [[Auto-hospedagem_e_ip_público_parte_2|parte 2]]. | + | Também é necessário instalar o zerotier na sua raspi, conforme descrito na [[Auto-hospedagem_e_ip_público_parte_2|parte 2]]. Anote o ip "managed" da raspi, que será usado na configuração do nginx. |
− | O que vamos fazer na | + | O que vamos fazer na VPS é instalar o zerotier e um servidor nginx e configurar esse como proxy reverso. Assim, todo o tráfego que chegar nele, que seja destinado ao teu domínio (digamos raspi.meudominio.net) vai ser direcionado para o ip da raspi da tua rede zerotier. |
Comece instalando o zerotier na VPS, conforme as instruções da [[Auto-hospedagem_e_ip_público_parte_2|parte 2]]. Autorize o seu acesso no menu em https://my.zerotier.com. | Comece instalando o zerotier na VPS, conforme as instruções da [[Auto-hospedagem_e_ip_público_parte_2|parte 2]]. Autorize o seu acesso no menu em https://my.zerotier.com. | ||
Linha 13: | Linha 13: | ||
===Nginx=== | ===Nginx=== | ||
Agora instale o nginx na VPS, caso ainda não tenha. As instruções são para Ubuntu, mas não será muito diferente em outros sistemas Debian. | Agora instale o nginx na VPS, caso ainda não tenha. As instruções são para Ubuntu, mas não será muito diferente em outros sistemas Debian. | ||
+ | sudo apt update | ||
sudo apt install nginx | sudo apt install nginx | ||
sudo systemctl enable nginx | sudo systemctl enable nginx | ||
Agora vem o truque principal, que é a configuração do proxy reverso. Vamos usar o editor pico para criar uma nova configuração de site: | Agora vem o truque principal, que é a configuração do proxy reverso. Vamos usar o editor pico para criar uma nova configuração de site: | ||
− | sudo pico /etc/nginx/sites-available/raspi.meudominio.net.conf | + | sudo pico /etc/nginx/sites-available/raspi.meudominio.net.conf |
(Substituindo o nome de domínio pelo teu). | (Substituindo o nome de domínio pelo teu). | ||
− | Agora faça paste das configurações | + | Agora faça paste das configurações, substituindo o IPRASPI na linha que começa com "proxy_pass" pelo "managed ip" da Raspi, anotado no passo anterior. |
server { | server { | ||
listen 80; | listen 80; | ||
Linha 30: | Linha 31: | ||
error_log /var/log/nginx/raspi.meudominio.net/error.log; | error_log /var/log/nginx/raspi.meudominio.net/error.log; | ||
location / { | location / { | ||
− | proxy_pass | + | proxy_pass https://IPRASPI; |
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; | ||
proxy_set_header Host $host; | proxy_set_header Host $host; | ||
Linha 53: | Linha 54: | ||
Uma observação: sua raspi pode necessitar de domínios diferentes para serviços diferentes. Se quiser acrescentar outro domínio como funkwhale.meudominio.net, basta repetir os passos, criando outro arquivo de configuração. | Uma observação: sua raspi pode necessitar de domínios diferentes para serviços diferentes. Se quiser acrescentar outro domínio como funkwhale.meudominio.net, basta repetir os passos, criando outro arquivo de configuração. | ||
− | + | ==SSL== | |
− | ==SSL | + | Em princípio o acesso já está funcionando, mas o serviço vai exigir uma conexão com certificado SSL. Portanto vamos instalar o letsencrypt: |
− | Em princípio o acesso já está funcionando | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt-get install software-properties-common | sudo apt-get install software-properties-common |
Edição atual tal como às 09h02min de 20 de agosto de 2021
Índice
VPS
Essa parte supõe que você tem acesso a uma VPS pública, ou seja, uma máquina virtual rodando um sistema linux na internet, que você pode acessar por ssh. Além disso, você precisa de um domínio próprio que possa apontar para essa máquina. Ou seja, você vai editar os registros DNS do domínio para que os pedidos que chegam nele sejam direcionados para o IP da VPS (como com qualquer serviço web). Faça isso agora, antes de começar.
Zerotier
Também é necessário instalar o zerotier na sua raspi, conforme descrito na parte 2. Anote o ip "managed" da raspi, que será usado na configuração do nginx.
O que vamos fazer na VPS é instalar o zerotier e um servidor nginx e configurar esse como proxy reverso. Assim, todo o tráfego que chegar nele, que seja destinado ao teu domínio (digamos raspi.meudominio.net) vai ser direcionado para o ip da raspi da tua rede zerotier.
Comece instalando o zerotier na VPS, conforme as instruções da parte 2. Autorize o seu acesso no menu em https://my.zerotier.com.
Nginx
Agora instale o nginx na VPS, caso ainda não tenha. As instruções são para Ubuntu, mas não será muito diferente em outros sistemas Debian.
sudo apt update sudo apt install nginx sudo systemctl enable nginx
Agora vem o truque principal, que é a configuração do proxy reverso. Vamos usar o editor pico para criar uma nova configuração de site:
sudo pico /etc/nginx/sites-available/raspi.meudominio.net.conf
(Substituindo o nome de domínio pelo teu).
Agora faça paste das configurações, substituindo o IPRASPI na linha que começa com "proxy_pass" pelo "managed ip" da Raspi, anotado no passo anterior.
server {
listen 80;
listen [::]:80;
server_name raspi.meudominio.net; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; access_log /var/log/nginx/raspi.meudominio.net/access.log; error_log /var/log/nginx/raspi.meudominio.net/error.log; location / {
proxy_pass https://IPRASPI;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_redirect off;
proxy_read_timeout 5m;
}
client_max_body_size 200M; }
Se você for subir arquivos muito grandes (maiores que 200 megabytes), não deixe de alterar a última linha, substituindo o 200M pelo limite que preferir.
Agora habilite a página:
sudo ln -s /etc/nginx/sites-available/raspi.meudominio.net /etc/nginx/sites-enabled/raspi.meudominio.net sudo systemctl restart nginx
Uma observação: sua raspi pode necessitar de domínios diferentes para serviços diferentes. Se quiser acrescentar outro domínio como funkwhale.meudominio.net, basta repetir os passos, criando outro arquivo de configuração.
SSL
Em princípio o acesso já está funcionando, mas o serviço vai exigir uma conexão com certificado SSL. Portanto vamos instalar o letsencrypt:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
Agora é só criptografar os sites criados:
certbot --nginx -d raspi.meudominio.net certbot --nginx -d funkwhale.meudominio.net
E pronto! Tua Raspi já está acessível de qualquer parte da Internet :)