ROR не может подключиться PostgreSQL не может подключиться к серверу: разрешение запрещено; в то время как консоль может подключиться - PullRequest
0 голосов
/ 13 января 2020

У меня есть приложение Ruby on Rails, работающее на сервере nginx (сервер приложений находится на ОС Red Hat). База данных установлена ​​на другом сервере (той же ОС: Red Hat). С консоли сервера приложений я могу подключиться к базе данных , используя те же учетные данные БД, что и в приложении. Но приложение ruby не может установить соединение . Выдает ошибку

В журнале ошибок /var/log/nginx/error.log есть сообщение об ошибке ниже

stderr: 
PG::ConnectionBad (could not connect to server: Permission denied
      Is the server running on host "10.178.61.135" and accepting
      TCP/IP connections on port 5432?
):

Кроме того, отметим, что я могу успешно запустить rake db:migrate

Файл database.yml выглядит следующим образом:

production:
  adapter: postgresql
  encoding: unicode
  database: applicationdatabase
  host: 10.178.61.135
  pool: 30
  port: 5432
  timeout: 10000
  username: dbuser
  password: dbpassword

На сервере базы данных конфигурация соединения /var/lib/pgsql/11/data/pg_hba.conf:

# Allow replication connections from localhost, by a user with the replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident
host       all          all             0.0.0.0/0               md5 

Привилегия базы данных

 List of databases
    Name             |    Owner    | Encoding |   Collate   |    Ctype    |      Access privileges
---------------------+-------------+----------+-------------+-------------+-----------------------------
 applicationdatabase | dbuser      | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/dbuser            +
                     |             |          |             |             | dbuser=CTc/dbuser

Другие настройки и версии

# Web app Server
nginx/1.10.1
Phusion passenger 5.0.29
Ruby 2.1.9
Rails 4.1.5
pg 0.17.1
RHEL 7.7

# DB Server
PostgreSQL 11.3
RHEL 7.7

1 Ответ

0 голосов
/ 14 января 2020

Если «psql» на сервере приложений может подключиться, а само ваше приложение не может, это звучит как что-то на компьютере сервера приложений, например, se linux или apparmor, который контролирует, какие пользователи или приложения могут использовать сеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...