Apache 2.4에서 두 개의 웹 애플리케이션 실행

Apache 2.4에서 두 개의 웹 애플리케이션 실행

내 Linux Apache 서버에서 두 개의 애플리케이션을 실행하려고 합니다.

  • 오픈프로젝트
  • pgAdmin(WSGI 애플리케이션)

그리고 원격 컴퓨터에서 연결하기 위해 다음 httpd구성 파일을 사용합니다.

오픈프로젝트의 경우:

Include /etc/openproject/addons/apache2/includes/server/*.conf

<VirtualHost *:80>
  ServerName 198.162.12.13
  DocumentRoot /opt/openproject/public

  ProxyRequests off

  Include /etc/openproject/addons/apache2/includes/vhost/*.conf

  # Can't use Location block since it would overshadow all the other proxypass directives on CentOS
  ProxyPass /openproject/ http://127.0.0.1:6000/openproject/ retry=0
  ProxyPassReverse /openproject/ http://127.0.0.1:6000/openproject/
</VirtualHost>

pgAdmin의 경우:

<VirtualHost *:80>

    ServerName 198.162.214.23
    WSGIScriptAlias /pgadmin4 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi
    WSGIDaemonProcess pgadmin processes=1 threads=25

    <Directory /usr/lib/python2.7/site-packages/pgadmin4-web/>
        WSGIProcessGroup pgadmin
        WSGIApplicationGroup %{GLOBAL}
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
    </Directory>

</VirtualHost>

그리고 이제 (나를 위한) 마법이 시작되고 내 질문은 어디에 있습니까?

두 파일 모두에서 서버 이름을 살펴보세요. pgAdmin에는 실제 IP 주소가 포함되어 있고 OpenProject에는 임의의 IP 주소가 있습니다.

해당 설정을 사용하면 pgAdmin은 작동하지만 OpenProject는 작동하지 않습니다.

일반적으로 pgAdmin에 대한 구성이 없으면 OpenProject는 모든 IP 주소에서 작동하는데 이는 이상합니다. 따라서 첫 번째 질문은 다음과 같습니다. 왜???

요약하면 다음과 같습니다.

두 파일 모두에 실제 IP 주소를 설정하면 OpenProject는 작동하지만 pgAdmin은 작동하지 않습니다.

두 파일 모두에 임의의 IP 주소를 설정하면 OpenProject는 작동하지만 pgAdmin은 작동하지 않습니다.

OpenProject에 대해 실제 IP를 설정하고 pgAdmin에 대해 무작위로 설정하면 OpenProject는 작동하지만 pgAdmin은 작동하지 않습니다.

OpenProject에 대해 임의 IP, pgAdmin에 대한 실제 IP를 설정하면 OpenProject는 작동하지 않지만 pgAdmin은 작동합니다.

왜 이렇게 엉망이 된 걸까요? 두 응용 프로그램이 모두 예상대로 작동하도록 해당 파일을 구성하는 방법은 무엇입니까?

답변1

DNS를 사용하여 서버의 실제 주소(198.162.12.13)를 가리키는 두 개의 이름(예: openproject.example및 ) 을 만듭니다 . pgadmin.example해당 ServerName설정에서 이러한 이름을 구성하고 사용하십시오.http://openproject.example그리고http://pgadmin.example액세스하려면

답변2

단일 IP 주소에서 여러 개의 개별 웹 사이트/응용 프로그램을 실행하려면 대략 세 가지 옵션이 있습니다.

  • 각 애플리케이션을 다른 URL 경로(예: $(hostname)/app1및 ) 에 설치합니다 /app2.

두 응용 프로그램을 모두 루트에 설치해야 하는 경우 /옵션은 다음과 같습니다.

  • 서로 다른 포트 번호에서 여러 가상 웹 서버를 실행하고 http://$(hostname):81/하나의 응용 프로그램을 표시하고 http://$(hostname):82/다른 응용 프로그램을 표시할 수 있습니다.

  • 서로 다른 호스트 이름으로 여러 가상 웹 서버를 실행하고이름 기반 가상 호스팅. 그런 다음 http://app1.example.com/하나의 응용 프로그램을 표시하고 http://app2.example.com/다른 응용 프로그램을 표시할 수 있습니다.

귀하의 구성은 마지막 옵션을 사용하려는 시도로 보이지만 두 VirtualHost 정의가 동일한 ServerNameApache로 구성되므로 구별할 수 없습니다.

관련 정보