Apache 2 가상 호스트를 사용하면 디렉터리의 모든 파일을 제공할 수 있습니다.

Apache 2 가상 호스트를 사용하면 디렉터리의 모든 파일을 제공할 수 있습니다.

내 Debian 시스템에 Apache 2 서버가 설치되어 있습니다. Apache는 포트 80에서 수신 대기합니다. 그런 다음 포트 8080에서 수신 대기하는 간단한 NodeJS 서버가 있습니다. Apache를 NodeJS 서버의 프록시로 사용하고 싶습니다. 내가 지금까지 가지고 있는 것:

/etc/apache2/sites-available/000-default.conf문서:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyVia Full
        <Proxy *>
            Require all granted
        </Proxy>

        <Location />
            ProxyPass http://127.0.0.1:8080
            ProxyPassReverse http://127.0.0.1:8080
        </Location>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

그런 다음 nodeJS 서버가 있습니다 /var/www/html/nodejs/app.js.

const express = require('express')
const app = express()
const port = 8080

app.get('/second', function(req, res){  
    res.sendFile('/var/www/html/nodejs/public/second.html');
});

app.listen(port, function() { 
    console.log(`Example app listening on port ${port}!`)
});

app.use(express.static("/var/www/html/nodejs/public"));

내 디렉토리에는 정적 파일 이 /var/www/html/nodejs/public있고index.htmlsecond.htmlmyScript.js

이제...제 질문은 다음과 같습니다. 다음을 통해 웹페이지에 액세스하는 경우http://localhost:8080(즉, 아파치 프록시 없이 직접) 잘 작동합니다. 하지만http://localhost:80(예: Apache 프록시), 나에게 파일만 제공합니다 index.html. 다른 두 파일은 제공되지 않으며 Chrome 네트워크 탭에 표시됩니다 Status: 502 Proxy Error.

public그래서 내 질문은 Apache 에이전트가 디렉터리에 있는 이러한 모든 파일을 확인하여 내 브라우저로 보낼 수 있도록 하려면 어떻게 해야 합니까 ? 감사해요!

답변1

ProxyPass 끝에 추가 슬래시를 추가해 볼 수 있습니다. 예를 들면 다음과 같습니다.

ProxyPass http://127.0.0.1:8080/

?

관련 정보