Debian
Apache 2 虛擬主機允許從一個目錄提供所有文件
我的 Debian 系統上安裝了 Apache 2 伺服器。Apache 監聽埠 80。然後我有一個簡單的 nodeJS 伺服器監聽埠 8080。我想使用 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.html
,second.html
並且myScript.js
現在……我的問題是:如果我通過http://localhost:8080訪問網頁(即直接沒有 apache 代理)它工作得很好。但是在http://localhost:80(即 apache 代理)上,它只為我提供
index.html
文件。其他兩個文件未提供,Chrome 網路選項卡Status: 502 Proxy Error
為它們顯示。所以我的問題是,我怎樣才能讓 Apache 代理從
public
目錄中看到所有這些文件,以便它可以將它們發送到我的瀏覽器?謝謝!
您能否嘗試在 ProxyPass 末尾添加一個額外的斜杠,例如:
ProxyPass http://127.0.0.1:8080/
?