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>