PostgreSQL Acessível ao Aplicativo da Web

1

Eu tenho um servidor com o PostgreSQL instalado e há scripts que estão constantemente modificando dados no banco de dados. O PostgreSQL está rodando na sua porta padrão 5432.

Gostaria de poder me conectar ao banco de dados do meu site, que é apenas uma hospedagem padrão comprada com o godaddy.

Sei que não consigo acessar o banco de dados porque ele não está acessível para a web, mas é possível disponibilizar meu banco de dados on-line para que meu site possa se comunicar com ele?

    
por Trent 29.10.2015 / 08:00

1 resposta

1

Você precisa que o servidor GoDaddy esteja conectado externamente. Isso nem sempre é o caso dos sites hospedados: já que só é esperado que outros usuários se conectem nas portas 80 ou 443 e possivelmente enviem conexões para os servidores de email ou banco de dados do host, todas as outras conexões podem ser protegidas por firewall. p>

Então você precisa que seu servidor tenha permissão para aceitar conexões. Uma solução seria estabelecer uma VPN entre o servidor GoDaddy e o servidor PostgreSQL. Caso contrário, o firewall do servidor PostgreSQL deve ser aberto para o GoDaddy (ou para qualquer um). Isto implica um risco de segurança.

Usando o SSH, você pode usar o encaminhamento de porta (também conhecido como túnel ssh) da máquina psql para a máquina apache. Você pode abrir a conexão de qualquer um dos lados (mas a sintaxe é um pouco diferente). por exemplo,

ssh useronpostgres@postgresmachine [other options] -L 5432:localhost:5432

executado no webmachine, criará uma porta PostgreSQL local no webmachine, para que o site possa "ver" um PostgreSQL local que esteja sendo executado na máquina do PostgreSQL.

Finalmente, o seu site precisa ser capaz de "falar" do PostgreSQL. A conexão simples não é suficiente , ou seja, ter a porta disponível é necessária, mas não suficiente per se . Se o site for desenvolvido em, digamos, Perl ou PHP, existem módulos PDO com drivers pgsql / psql; As chances são de que elas não estejam instaladas, a escolha usual é o MySQL, não o PostgreSQL. Se esse for realmente o caso, você precisará solicitar uma alteração de configuração.

Também há "conectores finos" para vários bancos de dados que permitem acesso REST ao MySQL ou PostgreSQL por meio de APIs REST (por exemplo, ArrestDB ou outros; veja também esta pergunta SO ); Se ainda não houver um servidor web no servidor PostgreSQL, você pode tentar instalar um desses. Isso permitiria o acesso do site pela porta 80, com algumas limitações de sintaxe e recursos, mas sem necessidade de drivers especializados no lado do GoDaddy. Você precisa avaliar se este último é um compromisso aceitável.

Um amplo acesso ao PostgreSQL também pode ser fornecido através da instalação do phpPgAdmin .

    
por 29.10.2015 / 08:17