정적 파일과 웹앱을 모두 제공하는 Apache

정적 파일과 웹앱을 모두 제공하는 Apache

Java webapp 콘텐츠를 제공하기 위해 역방향 프록시 구성 아래에서 Apache를 실행하고 있습니다.

<VirtualHost *:80>
SSLProxyEngine on
ProxyPreserveHost On
ProxyRequests Off

ServerName www.example.com
ServerAlias example.com

<Location />
        Order deny,allow
        Allow from all
        SetOutputFilter INFLATE;DEFLATE

        ProxyPass  http://localhost:7070/
        ProxyPassReverse  http://localhost:7070/
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</Location>

</VirtualHost>

이제 정적 파일 폴더를 추가하고 싶습니다. 동일한 도메인 이름이지만 "/auth" 경로 아래에 제공되어야 합니다. https://example.com/auth

그래서 위의 바로 아래에 구성을 추가했습니다.

<Location /auth>
      Require all granted
      Allow from all
</Location>

Alias "/auth" "/var/www/html/auth"
DocumentRoot /var/www/html/auth/
<Directory /var/www/html/auth>
        Require all granted
        DirectoryIndex index.html
</Directory>

하지만 "https://example.com/auth"를 시도하면 여전히 Java webapp으로 이동하여 404가 표시됩니다. 하지만 localhost를 컬링하면 웹페이지 콘텐츠를 볼 수 있습니다.

curl http://localhost

다음을 사용하여 /var/www/html/auth/의 정적 콘텐츠에 액세스하는 방법 https://example.com/authURL

답변1

지시문을 사용하여 프록시에서 해당 위치를 명시적으로 제거해야 합니다 ProxyPass "!". 이 작업은 Location프록시할 필요가 없는 작업에서 수행되어야 하며 이 블록은 작성되어야 합니다.~ 후에프록시 블록은 다음과 같습니다.

<Location />
  ProxyPass http://localhost:7070/
  (...)
</Location>

<Location /auth>
  ProxyPass "!"
</Location>

관련 정보