
Eu queria atingir o objetivo a seguir e fazê-lo funcionar em uma rede interna, porém isso não funciona externamente.
Objetivo: implantar o nginx para reverter servidores proxy n com diferentes endereços IP privados e apenas abrir as portas 80/443 no roteador e encaminhá-lo para o servidor Nginx no backend.
Ngix versão 1.18.0 no Ubuntu 22.04 LTS (Jammy Jellyfish)
Eu tenho um nome de domínio que aponta para o IP público do meu roteador e tenho uma configuração de proxy reverso nginx que só funciona bem quando estou conectado ao wifi doméstico (rede interna), mas os servidores back-end não estarão acessíveis se eu tentar meu LTE no meu telefone, por exemplo.
Aqui está meu proxy reverso.conf:
server {
server_name my.domainname.com;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/certs/localhost.crt;
ssl_certificate_key /etc/ssl/private/localhost.key;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
location /guac/ {
proxy_pass http://privateip1:port/guacamole/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cookie_path /guacamole/ /guac/;
access_log off;
}
location / {
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_pass http://privateip2:port;
}
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://privateip:port;
}
}
server {
listen 80;
listen [::]:80;
server_name my.domainname.com;
return 301 https://$server_name$request_uri;
}
Para mais informações, vi no telefone que o navegador estava tentando acessar o endereço IP privado 192.xxx, então tentei fazer outra regra de encaminhamento de porta no roteador e apontar para aquele servidor, mas ainda obtive o mesmo erro inacessível em meu telefone depois de substituir o ip privado pelo ip público do roteador com aquela porta recém-aberta. Também permiti que a regra de firewall desse servidor aceitasse tcp/udp em sua porta e garantisse que nada estava a caminho, mas ainda sem sorte.
Então, minha pergunta é: é possível atingir esse objetivo com o proxy reverso nginx?
Por favor, deixe-me saber se você precisar de mais informações.
Obrigado,
Responder1
Ok, descobri, era meu roteador. Ativei o DMZ e adicionei o servidor Nginx como host DMZ e agora ele está acessível pela Internet.
Duas postagens me ajudaram a descobrir isso:
Obrigado,