Обратный прокси с pgadmin и apache

#apache #reverse-proxy #pgadmin-4

#apache #обратный прокси #pgadmin-4

Вопрос:

Я хотел бы настроить локальный pgadmin в режиме сервера за обратным прокси. Обратный прокси и pgadmin могут находиться на одном компьютере. Я пытался настроить, но это всегда приводит к сбою. Вот mypgadmin conf:

 Listen 8080
<VirtualHost *:8080>
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/pgadmin.crt
  SSLCertificateKeyFile /etc/pki/tls/private/pgadmin.key

  LoadModule wsgi_module modules/mod_wsgi.so
  LoadModule ssl_module modules/mod_ssl.so
  WSGIDaemonProcess pgadmin processes=1 threads=25
  WSGIScriptAlias /pgadmin /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi

  <Directory /usr/lib/python2.7/site-packages/pgadmin4-web/>
          WSGIProcessGroup pgadmin
          WSGIApplicationGroup %{GLOBAL}
          <IfModule mod_authz_core.c>
                  # Apache 2.4
                  Require all granted
          </IfModule>
          <IfModule !mod_authz_core.c>
                  # Apache 2.2
                  Order Deny,Allow
                  Deny from All
                  Allow from 127.0.0.1
                  Allow from ::1
          </IfModule>
  </Directory>
</VirtualHost>
  

и мой обратный прокси-сервер conf

 Listen 443

<VirtualHost *:443>

        SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    SSLCertificateKeyFile /etc/pki/tls/private/localhost.key


    ErrorLog /var/log/httpd/reverse_proxy_error.log
    CustomLog /var/log/httpd/reverse_proxy_access.log combined

    SSLProxyEngine on
    SSLProxyVerify require
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCACertificateFile "/etc/pki/tls/certs/ca-bundle.crt"

    ProxyPreserveHost On    

    ProxyPass   /   https://localhost:8080/pgadmin
    ProxyPassReverse    /   https://localhost:8080/pgadmin   

</VirtualHost>
  

Запускается httpd, но когда я хочу протестировать его с

 wget --no-check-certificate https://localhost/
  

это выдает мне ошибку 400

но

 wget --no-check-certificate https://localhost:8080/pgadmin

  

работает. В чем проблема в моей конфигурации?

Комментарии:

1. Сообщение об ошибке `Отправлен HTTP-запрос, ожидающий ответа … Ошибка прокси 502 «

Ответ №1:

это работает для меня. Я создаю прокси-сервер pgadmin для подкаталога (https://localhost/pgadmin )

 <VirtualHost *:80>
    ServerName localhost

    DocumentRoot "/var/www"
    
    <Directory "/var/www">
        AllowOverride all
    </Directory

    ProxyPass /ws/ ws://0.0.0.0:8888/

    ProxyPass /phpmyadmin/ http://phpmyadmin/

    <Location /pgadmin/>
        ProxyPass http://pgadmin:5050/
        ProxyPassReverse http://pgadmin:5050/

        RequestHeader set X-Script-Name /pgadmin
        RequestHeader set Host $http_host
    </Location>
</VirtualHost>
  

Комментарии:

1. Это помогло мне, в частности, поместив ProxyPass и ProxyPass Reverse в <Location /pgadmin />, и в моем случае я использовал localhost: 5050 Спасибо

Ответ №2:

Вы пробовали с последней версией, я думаю, что это исправлено, эта ссылка на фиксацию LINK

Онлайн-документы:https://www.pgadmin.org/docs/pgadmin4/dev/server_deployment.html

Ответ №3:

Эта конфигурация работает, используйте 0.0.0.0 для pgadmin docker, иначе используйте свой ip

измените порт 5050 на свой порт pgadmin

 <VirtualHost *:80>
 ServerName pgadmin.yourdomain.com
 RedirectMatch permanent ^/pgadmin4$ /pgadmin4/
 ProxyPreserveHost On
 ProxyPass / http://0.0.0.0:5050/
 ProxyPassReverse / http://0.0.0.0:5050/
 Header edit Location ^/ /pgadmin4/
 Header always set X-Script-Name /pgadmin4
</VirtualHost>
  

Настройте с помощью SSL, замените yourdomain.com с действительным SSL для вашего домена

 <VirtualHost *:80>
    ServerName pgadmin.yourdomain.com
    RedirectMatch permanent ^/(.*)$ https://pgadmin.yourdomain.com/$1
</VirtualHost>


<VirtualHost *:443>
 ServerName pgadmin.yourdomain.com

 SSLEngine on
 SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

 RedirectMatch permanent ^/pgadmin4$ /pgadmin4/
 ProxyPreserveHost On
 ProxyPass / http://0.0.0.0:5050/
 ProxyPassReverse / http://0.0.0.0:5050/
 Header edit Location ^/ /pgadmin4/
 Header always set X-Script-Name /pgadmin4

</VirtualHost>