以我的知識確實可以使用 apache 網頁伺服器來做到。不過是要用反向代理的技術來去做。
反向代理設定前要啟用 mod_proxy、mod_proxy_http 和 mod_rewrite 這些模組。
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod rewrite
然後再編輯虛擬主機設定檔案,通常在 /etc/apache2/sites-available/000-default.conf
我有請 AI 幫忙想設定,請參考:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# 設定路徑 /a 對應到 127.0.0.1:7000
ProxyPass /a http://127.0.0.1:7000/
ProxyPassReverse /a http://127.0.0.1:7000/
# 設定路徑 /b 對應到 127.0.0.1:8000
ProxyPass /b http://127.0.0.1:8000/
ProxyPassReverse /b http://127.0.0.1:8000/
# 設定路徑 /c 對應到 127.0.0.1:9000
ProxyPass /c http://127.0.0.1:9000/
ProxyPassReverse /c http://127.0.0.1:9000/
# 為了讓子路徑也能正確重寫
<Location /a>
RewriteEngine on
RewriteRule ^/a/(.*)$ http://127.0.0.1:7000/$1 [P,L]
</Location>
<Location /b>
RewriteEngine on
RewriteRule ^/b/(.*)$ http://127.0.0.1:8000/$1 [P,L]
</Location>
<Location /c>
RewriteEngine on
RewriteRule ^/c/(.*)$ http://127.0.0.1:9000/$1 [P,L]
</Location>
</VirtualHost>
以上的設定應該就能滿足需求了。設定完後重啟 Apache 即可。
sudo systemctl restart apache2